/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
abstract class Exp { int f() { return 1; } }
class Add extends Exp {
Exp a1, a2;
Add(Exp a1, Exp a2) { this.a1 = a1; this.a2 = a2; }
int f() { return a1.f() + a2.f(); }
}
class Mult extends Exp {
Exp a1, a2;
Mult(Exp a1, Exp a2) { this.a1 = a1; this.a2 = a2; }
int f() { return a1.f() + a2.f(); }
}
class Const extends Exp {
int v;
Const(int v) { this.v = v; }
}
class Test {
public static void main
(String[] args
) { Exp e = new Add(new Mult(new Const(2), new Const(3)), new Const(4));
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KCmFic3RyYWN0IGNsYXNzIEV4cCB7IGludCBmKCkgeyByZXR1cm4gMTsgfSB9CmNsYXNzIEFkZCBleHRlbmRzIEV4cCB7CkV4cCBhMSwgYTI7CkFkZChFeHAgYTEsIEV4cCBhMikgeyB0aGlzLmExID0gYTE7IHRoaXMuYTIgPSBhMjsgfQppbnQgZigpIHsgcmV0dXJuIGExLmYoKSArIGEyLmYoKTsgfQp9CmNsYXNzIE11bHQgZXh0ZW5kcyBFeHAgewpFeHAgYTEsIGEyOwpNdWx0KEV4cCBhMSwgRXhwIGEyKSB7IHRoaXMuYTEgPSBhMTsgdGhpcy5hMiA9IGEyOyB9CmludCBmKCkgeyByZXR1cm4gYTEuZigpICsgYTIuZigpOyB9Cn0KY2xhc3MgQ29uc3QgZXh0ZW5kcyBFeHAgewppbnQgdjsKQ29uc3QoaW50IHYpIHsgdGhpcy52ID0gdjsgfQp9CmNsYXNzIFRlc3QgewpwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CkV4cCBlID0gbmV3IEFkZChuZXcgTXVsdChuZXcgQ29uc3QoMiksIG5ldyBDb25zdCgzKSksIG5ldyBDb25zdCg0KSk7ClN5c3RlbS5vdXQucHJpbnRsbihlLmYoKSk7Cn0KfQ==