#include<iostream>
using namespace std;


template<typename T> T  max(T a,T b)   {cerr<<"T "<<endl;return (a>b)?a:b;}

template<typename T> T max(T *data,size_t n) {
T _max = data[0];
 cerr<<"T[]"<<endl;
for(size_t i=0;i<n;++i)
	if(data[i]>_max) 
	  _max=data[i];
return _max;
}

template<typename T> T* max(T *a,T *b) {cerr<<"T*"<<endl;return ((*a)>(*b))?a:b;}

main() {
  ::max<int>(0,0);
}
