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