#include <iostream>
class c1{
public:
void f(){std::cout<<"In f1\n";}
};
class c2{
public:
void f(){std::cout<<"In f2\n";}
};
template <typename T>
class c {
T t;
public:
T* operator->() { return &t; }
};
int main()
{
c<c1> cMain;
cMain->f();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgYzF7CnB1YmxpYzoKICAgIHZvaWQgZigpe3N0ZDo6Y291dDw8IkluIGYxXG4iO30KfTsKY2xhc3MgYzJ7CnB1YmxpYzoKICAgIHZvaWQgZigpe3N0ZDo6Y291dDw8IkluIGYyXG4iO30KfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpjbGFzcyBjIHsKICAgIFQgdDsKcHVibGljOgogICAgVCogb3BlcmF0b3ItPigpIHsgcmV0dXJuICZ0OyB9Cn07CgppbnQgbWFpbigpCnsKICAgIGM8YzE+IGNNYWluOwogICAgY01haW4tPmYoKTsKICAgIHJldHVybiAwOwp9