#include <iostream>
using namespace std;
struct A { void test() { cout<<"A"<<endl; } };
struct B { void test() { cout<<"B"<<endl; } };
template<typename T>
void test(T & x)
{
x.test();
}
int main()
{
A a;
test(a);
B b;
test(b);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEEgeyB2b2lkIHRlc3QoKSB7IGNvdXQ8PCJBIjw8ZW5kbDsgfSB9OwpzdHJ1Y3QgQiB7IHZvaWQgdGVzdCgpIHsgY291dDw8IkIiPDxlbmRsOyB9IH07Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp2b2lkIHRlc3QoVCAmIHgpCnsKCXgudGVzdCgpOwp9CgoKaW50IG1haW4oKQp7CglBIGE7Cgl0ZXN0KGEpOwoJCglCIGI7Cgl0ZXN0KGIpOwoKCXJldHVybiAwOwp9