#include <iostream>
using namespace std;
class A {
protected:
A() {cout << "A()" << endl;};
};
class B : protected A {
public:
static const B& get() {
static B instance;
return instance;
}
protected:
B():A() { cout << "B()" << endl;};
};
int main() {
// your code goes here
// A a; won't compile
// B b; won't compile too
B::get();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQSB7CnByb3RlY3RlZDoKICAgIEEoKSB7Y291dCA8PCAiQSgpIiA8PCBlbmRsO307Cn07CgpjbGFzcyBCIDogcHJvdGVjdGVkIEEgewpwdWJsaWM6CiAgICBzdGF0aWMgY29uc3QgQiYgZ2V0KCkgewoJCXN0YXRpYyBCIGluc3RhbmNlOwoJCXJldHVybiBpbnN0YW5jZTsKICAgIH0KcHJvdGVjdGVkOgoJQigpOkEoKSB7IGNvdXQgPDwgIkIoKSIgPDwgZW5kbDt9Owp9OwoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkvLyBBIGE7IHdvbid0IGNvbXBpbGUKCS8vIEIgYjsgd29uJ3QgY29tcGlsZSB0b28KCUI6OmdldCgpOwoJcmV0dXJuIDA7Cn0=