#include <iostream>
using namespace std;
class X {
public:
int v;
void put(int x) { v = x; }
int get(void) { return v; }
};
class Y : public X {
public:
Y() { put(0); }
void write(int x) { put(x + 1); }
int read(void) { return get() - 1; }
};
int main() {
Y *y = new Y();
y->write(1);
cout << y->read();
delete y;
return 0;
}
ICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgICAKICAgIGNsYXNzIFggewogICAgcHVibGljOiAKICAgICAgICBpbnQgdjsKICAgICAgICB2b2lkIHB1dChpbnQgeCkgeyB2ID0geDsgfQogICAgICAgIGludCBnZXQodm9pZCkgeyByZXR1cm4gdjsgfQogICAgfTsKICAgIAogICAgY2xhc3MgWSA6IHB1YmxpYyBYIHsKICAgIHB1YmxpYzoKICAgICAgICBZKCkgeyBwdXQoMCk7IH0KICAgICAgICB2b2lkIHdyaXRlKGludCB4KSB7IHB1dCh4ICsgMSk7IH0KICAgICAgICBpbnQgcmVhZCh2b2lkKSB7IHJldHVybiBnZXQoKSAtIDE7IH0KICAgICAgICAKICAgIH07CiAgICAKICAgIGludCBtYWluKCkgewogICAgICAgIFkgKnkgPSBuZXcgWSgpOwogICAgICAgIHktPndyaXRlKDEpOwogICAgICAgIGNvdXQgPDwgeS0+cmVhZCgpOwogICAgICAgIGRlbGV0ZSB5OwogICAgICAgIHJldHVybiAwOwogICAgfQoKIA==