/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
class Program
{
public static void FunF(A o)
{ o.F(); }
public static void FunG(A o)
{ o.G(); }
public static void main
(String[] args
) {
B b = new B();
System.
out.
print("FunF(b) output: "); FunF
(b
); System.
out.
print("FunG(b) output: "); FunG
(b
);
System.
out.
print("b.F output: "); b.
F(); System.
out.
print("b.G output: "); b.
G();
A a = new B();
System.
out.
print("a.F output: "); a.
F(); System.
out.
print("a.G output: "); a.
G();
a =new A();
System.
out.
print("a.F output: "); a.
F(); System.
out.
print("a.G output: "); a.
G();
}
}
class A
{
public void F()
{ System.
out.
println("A.F"); }
public void G()
{ System.
out.
println("A.G"); } }
class B extends A
{
public void F()
{ System.
out.
println("B.F"); }
public void G()
{ System.
out.
println("B.G"); } }
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmNsYXNzIFByb2dyYW0KewogICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCAgRnVuRihBIG8pCiAgICAgICAgeyAgICBvLkYoKTsgIH0KICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgRnVuRyhBIG8pCiAgICAgICAgeyAgICBvLkcoKTsgIH0KCiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIEIgYiA9IG5ldyBCKCk7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIkZ1bkYoYikgb3V0cHV0OiAiKTsgRnVuRihiKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiRnVuRyhiKSBvdXRwdXQ6ICIpOyBGdW5HKGIpOwogCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoImIuRiBvdXRwdXQ6ICIpOyBiLkYoKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiYi5HIG91dHB1dDogIik7IGIuRygpOwogCgkgICAgIEEgYSA9IG5ldyBCKCk7CgkgICAgIFN5c3RlbS5vdXQucHJpbnQoImEuRiBvdXRwdXQ6ICIpOyBhLkYoKTsKICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoImEuRyBvdXRwdXQ6ICIpOyBhLkcoKTsKCgkgICAgIGEgPW5ldyBBKCk7CgkgICAgIFN5c3RlbS5vdXQucHJpbnQoImEuRiBvdXRwdXQ6ICIpOyBhLkYoKTsKICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoImEuRyBvdXRwdXQ6ICIpOyBhLkcoKTsKIAogICAgICAgIH0KICAgIH0KCiAgICBjbGFzcyBBCiAgICB7CiAgICAgICAgcHVibGljIHZvaWQgRigpCiAgICAgICAgeyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBLkYiKTsgICAgIH0KIAogICAgICAgIHB1YmxpYyB2b2lkIEcoKQogICAgICAgIHsgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQS5HIik7ICAgIH0KICAgIH0KIAogICAgY2xhc3MgQiBleHRlbmRzIEEKICAgIHsKICAgICAgICBwdWJsaWMgdm9pZCBGKCkKICAgICAgICB7ICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQi5GIik7ICAgICB9CiAKICAgICAgICBwdWJsaWMgdm9pZCBHKCkKICAgICAgICB7ICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQi5HIik7ICAgIH0KICAgIH0=