#include <iostream>
using namespace std;

class A
{
public:
   int I;
protected:
   int J;
};

class B
{
public:
   int I;
protected:
   int K;
};

class AB: public A, public B
{
public:
   int N;
   int K; 

   void SetJ(int value)
   {
	   J = value;
   }

   void display()
   {
	   cout << "N = " << N << endl;
	   cout << "K = " << K << endl;
	   cout << "B::K = " << B::K << endl;
	   cout << "A::I = " << A::I << endl;
	   cout << "B::I = " << B::I << endl;
	   cout << "J = " << J << endl;
	   cout << "A::J = " << A::J << endl;
   }
};

main()
{
   AB ab;

   ab.N = 0;
   ab.I = 1;    // ambiguous...A::I or B::I?so replace the above with
               //  ab.A::I = 1;
   ab.B::I = 2;
   ab.K = 3; 
   
   ab.J = 4; // protected so replace above with ab.SetJ(4);

   ab.display(); 

   return 0;
}
