#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;
}