#include <iostream>
template<int I> struct X
{
static int const c = 2;
};
template<> struct X<0>
{
typedef int c;
};
template<typename T> struct Y
{
static int const c = 3;
};
static int const c = 4;
int main()
{
std::cout << (Y<X<1> >::c >::c >::c) << ' ';
std::cout << (Y<X< 1>>::c >::c >::c) << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp0ZW1wbGF0ZTxpbnQgST4gc3RydWN0IFgKewogICAgc3RhdGljIGludCBjb25zdCBjID0gMjsKfTsKdGVtcGxhdGU8PiBzdHJ1Y3QgWDwwPgp7CiAgICB0eXBlZGVmIGludCBjOwp9Owp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgWQp7CiAgICBzdGF0aWMgaW50IGNvbnN0IGMgPSAzOwp9OwpzdGF0aWMgaW50IGNvbnN0IGMgPSA0OwppbnQgbWFpbigpCnsKICAgIHN0ZDo6Y291dCA8PCAoWTxYPDE+ID46OmMgPjo6YyA+OjpjKSA8PCAnICc7CiAgICBzdGQ6OmNvdXQgPDwgKFk8WDwgMT4+OjpjID46OmMgPjo6YykgPDwgJ1xuJzsKfQo=