#include <iostream>
#include <string>
#include <cstring>
using namespace std;
template <typename T>
inline T const& max(T const& a, T const& b)
{
return a > b ? a : b;
}
char const* max(char const* str1, char const* str2)
{
return strcmp(str1, str2) > 0 ? str1 : str2;
}
int main(int argc, char *argv[])
{
cout << ::max("hello", "world") << endl;
cout << ::max(string("hello"), string("world")) << endl;
return 0;
}