#include <iostream>
using namespace std;
auto l1 = [](int a){cout<<"int\n";};
auto l2 = [](float a){cout<<"float\n";};
template<typename T1 = decltype(l1) , typename T2=decltype(l2) >
class A : T1, T2
{
public:
A(): T1(l1), T2(l2){};
using T1::operator();
using T2::operator();
};
int main() {
// your code goes here
A<decltype(l1), decltype(l2)> a;
a(0);
a(0.0f);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYXV0byBsMSA9IFtdKGludCBhKXtjb3V0PDwiaW50XG4iO307CmF1dG8gbDIgPSBbXShmbG9hdCBhKXtjb3V0PDwiZmxvYXRcbiI7fTsKCQoJdGVtcGxhdGU8dHlwZW5hbWUgVDEgPSBkZWNsdHlwZShsMSkgLCB0eXBlbmFtZSBUMj1kZWNsdHlwZShsMikgPgoJY2xhc3MgQSA6IFQxLCBUMgoJewoJICAgIHB1YmxpYzoKCSAgICBBKCk6IFQxKGwxKSwgVDIobDIpe307CgkgICAgdXNpbmcgVDE6Om9wZXJhdG9yKCk7CgkgICAgdXNpbmcgVDI6Om9wZXJhdG9yKCk7CgkJCgl9OwoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglBPGRlY2x0eXBlKGwxKSwgZGVjbHR5cGUobDIpPiBhOwoJYSgwKTsKCWEoMC4wZik7CglyZXR1cm4gMDsKfQ==