#include <iostream>
using namespace std;
template <typename T>
struct B {
typedef T type;
};
struct D0 : public B<int> {
void h(type) { }
};
template <typename T>
struct D : public B<T> {
void f(typename B<T>::type) { }
void g(type) { }
};
int main() {
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0cnVjdCBCIHsKCXR5cGVkZWYgVCB0eXBlOwp9OwoKc3RydWN0IEQwIDogcHVibGljIEI8aW50PiB7Cgl2b2lkIGgodHlwZSkgeyB9Cn07Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kc3RydWN0IEQgOiBwdWJsaWMgQjxUPiB7Cgl2b2lkIGYodHlwZW5hbWUgQjxUPjo6dHlwZSkgeyB9Cgl2b2lkIGcodHlwZSkgeyB9Cn07CgoKaW50IG1haW4oKSB7Cn0=