#include <iostream>
using namespace std;
template<int n,class T2> class B{};
class D{};
template<class T2> using B1 = B<1,T2>;
template<template<class T2>class H>class E{
//"H<T2>" is "B1<T2>" = "B<1,T2>"
H<D> h; //Here, T2=D, so "H<D>" = "B<1,D>"
};
int main() {
E<B1> e; //Can I call it E<B<1>> ?
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8aW50IG4sY2xhc3MgVDI+IGNsYXNzIEJ7fTsKY2xhc3MgRHt9Owp0ZW1wbGF0ZTxjbGFzcyBUMj4gdXNpbmcgQjEgPSBCPDEsVDI+Owp0ZW1wbGF0ZTx0ZW1wbGF0ZTxjbGFzcyBUMj5jbGFzcyBIPmNsYXNzIEV7CgkvLyJIPFQyPiIgaXMgIkIxPFQyPiIgPSAiQjwxLFQyPiIKCUg8RD4gaDsgIC8vSGVyZSwgVDI9RCwgc28gIkg8RD4iID0gIkI8MSxEPiIKfTsKaW50IG1haW4oKSB7CglFPEIxPiBlOyAvL0NhbiBJIGNhbGwgaXQgRTxCPDE+PiA/CglyZXR1cm4gMDsKfQ==