#include <iostream>
using namespace std;
 
template <typename T> class tt
{
	public :
	tt()
	{
		std::cout << std::endl << "   CONSTRUCTOR" << std::endl;
	}
	template <typename U> const tt<T>& operator=(const tt<U>& that){std::cout << std::endl << "   OPERATOR" << std::endl;}
	template <typename U> tt(const tt<U>& that)
	{
		std::cout << std::endl << "    COPY CONSTRUCTOR" << std::endl;
	}
};
 
 
tt<int> test(void)
{
	std::cout << std::endl << "      INSIDE " << std::endl; tt<int> a; return a;
}
 
int main() {
	// your code goes here
	tt<int> a ; a = test();
 
	return 0;
}