#include <iostream>
#include <iomanip>
#include <list>
using namespace std;
class Base {
};
class D1: public Base {};
class D2: public Base {};
template < class Tp, class C = std::list<Tp>, size_t Tag = 5 >
class accountant {};
int main(int argc, const char * argv[])
{
cout << is_same<D1,D2>::value << endl;
cout << is_same<accountant<double>,
accountant<double,std::list<double>,5>>::value << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGxpc3Q+CgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIEJhc2Ugewp9OwoKY2xhc3MgRDE6IHB1YmxpYyBCYXNlIHt9OwpjbGFzcyBEMjogcHVibGljIEJhc2Uge307Cgp0ZW1wbGF0ZSA8IGNsYXNzIFRwLCBjbGFzcyBDID0gc3RkOjpsaXN0PFRwPiwgc2l6ZV90IFRhZyA9IDUgPgpjbGFzcyBhY2NvdW50YW50IHt9OwoKaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pCnsKICAgIGNvdXQgPDwgaXNfc2FtZTxEMSxEMj46OnZhbHVlIDw8IGVuZGw7CiAgICBjb3V0IDw8IGlzX3NhbWU8YWNjb3VudGFudDxkb3VibGU+LAogICAgICAgICAgICAgICAgICAgICAgYWNjb3VudGFudDxkb3VibGUsc3RkOjpsaXN0PGRvdWJsZT4sNT4+Ojp2YWx1ZSA8PCBlbmRsOwp9Cgo=