#include <iostream>
#include <typeinfo>
using namespace std;
class TLine{};
class TCircle{};
class TPrimitive
{
public:
TPrimitive(){}
explicit TPrimitive(const TPrimitive&){}
template<class T>
explicit TPrimitive(const T&){}
};
int main() {
TPrimitive a((TLine())), b((TCircle()));
cout<<typeid(a).name()<<endl;
cout<<typeid(b).name()<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgVExpbmV7fTsKY2xhc3MgVENpcmNsZXt9OwoKY2xhc3MgVFByaW1pdGl2ZQp7CnB1YmxpYzoKCVRQcmltaXRpdmUoKXt9CglleHBsaWNpdCBUUHJpbWl0aXZlKGNvbnN0IFRQcmltaXRpdmUmKXt9Cgl0ZW1wbGF0ZTxjbGFzcyBUPgoJZXhwbGljaXQgVFByaW1pdGl2ZShjb25zdCBUJil7fQp9OwoKaW50IG1haW4oKSB7CglUUHJpbWl0aXZlIGEoKFRMaW5lKCkpKSwgYigoVENpcmNsZSgpKSk7Cgljb3V0PDx0eXBlaWQoYSkubmFtZSgpPDxlbmRsOwoJY291dDw8dHlwZWlkKGIpLm5hbWUoKTw8ZW5kbDsKCXJldHVybiAwOwp9