#include <iostream>
#include <string>

using namespace std;

template <typename T>
class Stack{
	T data[100];
	int top;
public:
	Stack() { top = -1; }
	void push( T val ) { data[++top] = val; }
	T pop() { return data[top--]; }
	T peek() { return data[top]; }
};

template <typename T>
string equals( T v1, T v2 )
{
	if( v1 == v2 ) return "Same";
	else return "Different";
}

int main()
{
	Stack<int> si;
	si.push(22);
	si.push(11);
	cout<< si.pop() << endl;
	cout<< si.peek() << endl;

	cout << equals( 1, 2 ) << endl;
	cout << equals( 1.0, 1.0 ) << endl;
	cout << equals( "hello", "bye" ) << endl;

	system("pause");
}