#include <iostream>
using namespace std;
template<class>
struct S
{
struct A
{
static int x;
};
int& get() { return A::x; }
};
template<class T>
int S<T>::A::x = 0;
int main()
{
S<int> i1, i2;
S<long> l;
cout << i1.get() << " " << i2.get() << " " << l.get() << "\n";
i1.get()++;
cout << i1.get() << " " << i2.get() << " " << l.get() << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8Y2xhc3M+CnN0cnVjdCBTCnsKCXN0cnVjdCBBCgl7CgkJc3RhdGljIGludCB4OwoJfTsKCQoJaW50JiBnZXQoKSB7IHJldHVybiBBOjp4OyB9Cn07Cgp0ZW1wbGF0ZTxjbGFzcyBUPgppbnQgUzxUPjo6QTo6eCA9IDA7CgppbnQgbWFpbigpCnsKCVM8aW50PiBpMSwgaTI7CglTPGxvbmc+IGw7CgkKCWNvdXQgPDwgaTEuZ2V0KCkgPDwgIiAiIDw8IGkyLmdldCgpIDw8ICIgIiA8PCBsLmdldCgpIDw8ICJcbiI7CglpMS5nZXQoKSsrOwoJY291dCA8PCBpMS5nZXQoKSA8PCAiICIgPDwgaTIuZ2V0KCkgPDwgIiAiIDw8IGwuZ2V0KCkgPDwgIlxuIjsKfQ==