#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=