#include <iostream>
using namespace std;
struct hoge
{
template<int N>
void operator ()() const
{
cout << N << endl;
}
};
template<class T>
void f(T const & t)
{
t.template operator ()<1>();
}
int main() {
f(hoge());
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGhvZ2UKewoJdGVtcGxhdGU8aW50IE4+Cgl2b2lkIG9wZXJhdG9yICgpKCkgY29uc3QKCXsKCQljb3V0IDw8IE4gPDwgZW5kbDsKCX0KfTsKCnRlbXBsYXRlPGNsYXNzIFQ+CnZvaWQgZihUIGNvbnN0ICYgdCkKewoJdC50ZW1wbGF0ZSBvcGVyYXRvciAoKTwxPigpOwp9CgppbnQgbWFpbigpIHsKCWYoaG9nZSgpKTsKCXJldHVybiAwOwp9