#include <iostream>
#include <utility>
using namespace std;
template<typename T> class A { };
template<typename T> class A1: public A<T>{ };
template<typename T> class A2: public A<T>{ };
template<typename T, template <typename> typename Atype>
class WrapperA {
Atype<pair<T, int>> atypeobj;
};
int main()
{
WrapperA<int, A1> w1;
WrapperA<int, A2> w2;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dXRpbGl0eT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEEgeyB9Owp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBBMTogcHVibGljIEE8VD57IH07CnRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEEyOiBwdWJsaWMgQTxUPnsgfTsKCnRlbXBsYXRlPHR5cGVuYW1lIFQsIHRlbXBsYXRlIDx0eXBlbmFtZT4gdHlwZW5hbWUgQXR5cGU+CmNsYXNzIFdyYXBwZXJBIHsKICAgQXR5cGU8cGFpcjxULCBpbnQ+PiBhdHlwZW9iajsKfTsKCmludCBtYWluKCkKewoJV3JhcHBlckE8aW50LCBBMT4gdzE7CglXcmFwcGVyQTxpbnQsIEEyPiB3MjsKCXJldHVybiAwOwp9