#include<iostream>
using namespace std;
template <typename T1, typename T2, typename T3> T1 max(T1,T2,T3);
template <typename T1, typename T2> T1 max(T1,T2);
template <typename T1, typename T2>
T1 max(T1 x, T2 y){
return x+y;
}
template <typename T1, typename T2, typename T3>
T1 max(T1 x, T2 y, T3 z){
return x+y+z;
}
int main()
{
cout << ::max(1.2,2.3,3.4) << endl;
cout << ::max(1,2) << endl;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzPiBUMSBtYXgoVDEsVDIsVDMpOwp0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPiBUMSBtYXgoVDEsVDIpOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KVDEgbWF4KFQxIHgsIFQyIHkpewogcmV0dXJuIHgreTsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDM+ClQxIG1heChUMSB4LCBUMiB5LCBUMyB6KXsKIHJldHVybiB4K3krejsKfQoKaW50IG1haW4oKQp7CiAgICAgICAgY291dCA8PCA6Om1heCgxLjIsMi4zLDMuNCkgPDwgZW5kbDsKICAgICAgICBjb3V0IDw8IDo6bWF4KDEsMikgPDwgZW5kbDsKfQ==