#include <iostream>
using namespace std;
class Foo
{
	public:
		Foo(){cout<<"Foo"<<endl;}
		~Foo(){cout<<"~Foo"<<endl;}
		int f;
};
class Bar
{
	public:
		Bar(){cout<<"Bar"<<endl;}
		~Bar(){cout<<"~Bar"<<endl;}
		int b;
};

union U
{
	U(){}
	~U(){}
	Foo f;
	int a;
	Bar b;
};
int main() {
	U uu;
	cout<<"=========== 1" <<endl;
	uu.f.f = 123;
	cout<<"=========== 2" <<endl;
	uu.a = 123;
	cout<<"=========== 3" <<endl;
	uu.b.b = 123;
	cout<<"=========== 4" <<endl;
	// your code goes here
	return 0;
}