#include <iostream>
struct A {
A() {}
static int n;
static int increment() { return ++n; }
};
int A::n = 0;
struct B : public A {};
struct C : public A {};
struct D : public B, C {};
int main() {
D d;
std::cout << d.increment() << "\n";
std::cout << d.increment() << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEEgewogIEEoKSB7fQogIHN0YXRpYyBpbnQgbjsKICBzdGF0aWMgaW50IGluY3JlbWVudCgpIHsgcmV0dXJuICsrbjsgfQp9OwppbnQgQTo6biA9IDA7CgpzdHJ1Y3QgQiA6IHB1YmxpYyBBIHt9OwpzdHJ1Y3QgQyA6IHB1YmxpYyBBIHt9OwpzdHJ1Y3QgRCA6IHB1YmxpYyBCLCBDIHt9OwoKaW50IG1haW4oKSB7CiAgRCBkOwogIHN0ZDo6Y291dCA8PCBkLmluY3JlbWVudCgpIDw8ICJcbiI7CiAgc3RkOjpjb3V0IDw8IGQuaW5jcmVtZW50KCkgPDwgIlxuIjsKfQ==