#include <iostream>
#include <iomanip>
#include <type_traits>
template<size_t N> struct X : X<N - 1> {};
template<> struct X<0> {};
template<size_t N>
struct Y : X<N - 1> {};
int main()
{
std::cout << std::boolalpha;
std::cout << std::is_base_of<X<0>, Y<10>>::value << "\n";
std::cout << std::is_base_of<X<1>, Y<10>>::value << "\n";
std::cout << std::is_base_of<X<2>, Y<10>>::value << "\n";
std::cout << std::is_base_of<X<3>, Y<10>>::value << "\n";
std::cout << std::is_base_of<X<4>, Y<10>>::value << "\n";
std::cout << std::is_base_of<X<5>, Y<10>>::value << "\n";
std::cout << std::is_base_of<X<6>, Y<10>>::value << "\n";
std::cout << std::is_base_of<X<7>, Y<10>>::value << "\n";
std::cout << std::is_base_of<X<8>, Y<10>>::value << "\n";
std::cout << std::is_base_of<X<9>, Y<10>>::value << "\n";
std::cout << std::is_base_of<X<10>, Y<10>>::value << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgoKdGVtcGxhdGU8c2l6ZV90IE4+IHN0cnVjdCBYIDogWDxOIC0gMT4ge307CnRlbXBsYXRlPD4gc3RydWN0IFg8MD4ge307Cgp0ZW1wbGF0ZTxzaXplX3QgTj4Kc3RydWN0IFkgOiBYPE4gLSAxPiB7fTsKCmludCBtYWluKCkKewogICAgc3RkOjpjb3V0IDw8IHN0ZDo6Ym9vbGFscGhhOwogICAgc3RkOjpjb3V0IDw8IHN0ZDo6aXNfYmFzZV9vZjxYPDA+LCBZPDEwPj46OnZhbHVlIDw8ICJcbiI7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjppc19iYXNlX29mPFg8MT4sIFk8MTA+Pjo6dmFsdWUgPDwgIlxuIjsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmlzX2Jhc2Vfb2Y8WDwyPiwgWTwxMD4+Ojp2YWx1ZSA8PCAiXG4iOwogICAgc3RkOjpjb3V0IDw8IHN0ZDo6aXNfYmFzZV9vZjxYPDM+LCBZPDEwPj46OnZhbHVlIDw8ICJcbiI7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjppc19iYXNlX29mPFg8ND4sIFk8MTA+Pjo6dmFsdWUgPDwgIlxuIjsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmlzX2Jhc2Vfb2Y8WDw1PiwgWTwxMD4+Ojp2YWx1ZSA8PCAiXG4iOwogICAgc3RkOjpjb3V0IDw8IHN0ZDo6aXNfYmFzZV9vZjxYPDY+LCBZPDEwPj46OnZhbHVlIDw8ICJcbiI7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjppc19iYXNlX29mPFg8Nz4sIFk8MTA+Pjo6dmFsdWUgPDwgIlxuIjsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmlzX2Jhc2Vfb2Y8WDw4PiwgWTwxMD4+Ojp2YWx1ZSA8PCAiXG4iOwogICAgc3RkOjpjb3V0IDw8IHN0ZDo6aXNfYmFzZV9vZjxYPDk+LCBZPDEwPj46OnZhbHVlIDw8ICJcbiI7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjppc19iYXNlX29mPFg8MTA+LCBZPDEwPj46OnZhbHVlIDw8ICJcbiI7Cn0K