#include <iostream>
#include <iomanip>
using namespace std;
template <class T1, class T2 = void>
class A
{
public:
void f()
{
t1 = t2.get();
}
T1 result() {cout << "2\n"; return t1;}
private:
T1 t1;
T2 t2;
};
template<class T1>
class A<T1, void>
{
public:
void f() {/*do nothing*/}
T1 result() { cout << "1\n"; return t1;}
T1 t1;
};
int main(int argc, char * argv[])
{
A<int> a;
A<int,int> b;
a.result();
b.result();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyID0gdm9pZD4KY2xhc3MgQQp7CnB1YmxpYzoKCiAgICB2b2lkIGYoKQogICAgewogICAgICAgIHQxID0gdDIuZ2V0KCk7CiAgICB9CgogICAgVDEgcmVzdWx0KCkge2NvdXQgPDwgIjJcbiI7IHJldHVybiB0MTt9CnByaXZhdGU6CiAgICBUMSB0MTsKICAgIFQyIHQyOwp9OwoKdGVtcGxhdGU8Y2xhc3MgVDE+IApjbGFzcyBBPFQxLCB2b2lkPgp7CnB1YmxpYzoKCiAgICB2b2lkIGYoKSB7LypkbyBub3RoaW5nKi99CiAgICBUMSByZXN1bHQoKSB7IGNvdXQgPDwgIjFcbiI7IHJldHVybiB0MTt9CgogICAgVDEgdDE7Cn07CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqIGFyZ3ZbXSkKewogICAgQTxpbnQ+IGE7CiAgICBBPGludCxpbnQ+IGI7CiAgICBhLnJlc3VsdCgpOwogICAgYi5yZXN1bHQoKTsKfQo=