#include <iostream>
using namespace std;
template <typename T>
T maximus( T t1, T t2 );
template <typename T>
T maximus( T x, T y, T z );
int main()
{
cout << maximus( 1, 0 ) << endl;
cout << maximus( 2, 1, 3 ) << endl;
return 0;
}
template <typename T>
T maximus( T t1, T t2 )
{
return t1 > t2 ? t1 : t2;
}
template <typename T>
T maximus( T x, T y, T z )
{
return ( x > y ) ? ( ( x > z ) ? x : z ) : ( ( y > z ) ? y : z );
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+ClQgbWF4aW11cyggVCB0MSwgVCB0MiApOwp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KVCBtYXhpbXVzKCBUIHgsIFQgeSwgVCB6ICk7CmludCBtYWluKCkKewogICAgY291dCA8PCBtYXhpbXVzKCAxLCAwICkgPDwgZW5kbDsKICAgIGNvdXQgPDwgbWF4aW11cyggMiwgMSwgMyApIDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+ClQgbWF4aW11cyggVCB0MSwgVCB0MiApCnsKICAgIHJldHVybiB0MSA+IHQyID8gdDEgOiB0MjsKfQp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KVCBtYXhpbXVzKCBUIHgsIFQgeSwgVCB6ICkKewogICAgcmV0dXJuICggeCA+IHkgKSA/ICggKCB4ID4geiApID8geCA6IHogKSA6ICggKCB5ID4geiApID8geSA6IHogKTsKfQ==