class A 
{ 
   void print(String s) { System.out.print(s); }
   void f() { print("f"); g(); } 
   void g() { print("g"); }
}

class B extends A 
{
   void f() { print("f"); super.f(); }
   void g() { h(); }
   void h() { print("h"); }
}

public class Print
{
    public static void main(String args[])
    {
        A a = new B(); 
        a.f(); // What does it print?
    }
}
