#include <iostream>

class B
{
public:
    virtual void f() { std::cout<<"Fi"; }
    virtual void f(int) { std::cout<<"GI"; }

};

class A : protected B
{
public:
    void f(double) { std::cout<<"HI"; }
    void f() { B::f(); }
};

int main ()
{
	A a;
	a.f();
	a.f(10);

  return 0;
}