#include <iostream>
#include <vector>


class A {
public:
  A() {};
  A(const A &) = delete;
  void push(int i) { data.push_back(i); }
  void dump(void) { std::cout << data.size() << '\n'; }
private:
  std::vector<int> data;
};

extern A master;
// A master();

class B {
public:
  int val;
  B(const B &) = delete;
  B(int i) : val(i) {
  	master.push(i);
  	master.dump();
  }
};

B o1(123);
A master;
B o2(456);

int main() {
  master.dump();
  return 0;
}