template<typename T>
struct a_p
{
typedef T**********type;
};
template<int N,typename T>
struct a_ps : a_p<typename a_ps<N-1, T>::type> {};
template<typename T>
struct a_ps<0,T>
{
typedef T type;
};
template<int N, typename T>
struct amp : a_ps<80,typename amp<N-1, T>::type> {};
template<typename T>
struct amp<0,T>
{
typedef T type;
};
int main()
{
amp<80, int>::type p;
}
dGVtcGxhdGU8dHlwZW5hbWUgVD4gCnN0cnVjdCBhX3AKewogICAgdHlwZWRlZiBUKioqKioqKioqKnR5cGU7Cn07Cgp0ZW1wbGF0ZTxpbnQgTix0eXBlbmFtZSBUPgpzdHJ1Y3QgYV9wcyA6IGFfcDx0eXBlbmFtZSBhX3BzPE4tMSwgVD46OnR5cGU+IHt9OwoKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnN0cnVjdCBhX3BzPDAsVD4KewogICAgdHlwZWRlZiBUIHR5cGU7Cn07Cgp0ZW1wbGF0ZTxpbnQgTiwgdHlwZW5hbWUgVD4gCnN0cnVjdCBhbXAgOiBhX3BzPDgwLHR5cGVuYW1lIGFtcDxOLTEsIFQ+Ojp0eXBlPiB7fTsKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnN0cnVjdCBhbXA8MCxUPgp7CiAgICB0eXBlZGVmIFQgdHlwZTsKfTsKCmludCBtYWluKCkKewogICAgYW1wPDgwLCBpbnQ+Ojp0eXBlIHA7Cn0K