#include <iostream>
template <typename T>
int foo(T&, T&) { return 1; }
int foo(char*, char*) { return 2; }
int foo(const char*, const char*) { return 3; }
int main()
{
std::cout << foo("Hello", "World") << std::endl;
std::cout << foo("Hello", "World!") << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmludCBmb28oVCYsIFQmKSB7IHJldHVybiAxOyB9CgppbnQgZm9vKGNoYXIqLCBjaGFyKikgeyByZXR1cm4gMjsgfQoKaW50IGZvbyhjb25zdCBjaGFyKiwgY29uc3QgY2hhciopIHsgcmV0dXJuIDM7IH0KCgppbnQgbWFpbigpCnsKICAgc3RkOjpjb3V0IDw8IGZvbygiSGVsbG8iLCAiV29ybGQiKSA8PCBzdGQ6OmVuZGw7CiAgIHN0ZDo6Y291dCA8PCBmb28oIkhlbGxvIiwgIldvcmxkISIpIDw8IHN0ZDo6ZW5kbDsKfQo=