// examples with pointers
// #define _GLIBCXX_DEBUG 1
#include <bits/stdc++.h>
using namespace std;

struct Node
{
	int x;
	int y;
	Node * left;
	Node * right;
};

vector <int> * fun ()
{
	vector <int> * v = new vector <int> (10);
	return v;
}

int main ()
{
	int x = 1;
	int * y = &x;
	int * * z = &y;
	int * * * t = &z;
	cout << ***t << "!";
	cout << x << " " << y << " " << z << " " << t << endl;
	vector <int> * a = fun ();
	(*a)[5] = 1;
	cout << (*a)[5] << endl;
	cout << (*a)[6] << endl;
}
