#include <algorithm>
#include <functional>
#include <iterator>
#include <iostream>
#include <numeric>
#include <sstream>
#include <string>
#include <type_traits>
#include <utility>
#include <vector>
template <typename T1, typename T2>
auto Add(T1 x, T2 y)
{
return x + y;
}
template <>
auto Add<char, char>(char x, char y)
{
return std::string("") + x + y;
}
int main()
{
using namespace std;
cout << Add('x', 'y') << endl;
auto v = Add('x', 1);
cout << v << endl;
auto r = Add("hello "s, 'c');
cout << r << endl;
return EXIT_SUCCESS;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxpdGVyYXRvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KI2luY2x1ZGUgPHV0aWxpdHk+CiNpbmNsdWRlIDx2ZWN0b3I+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyPgphdXRvIEFkZChUMSB4LCBUMiB5KQp7CiAgICByZXR1cm4geCArIHk7Cn0KCnRlbXBsYXRlIDw+CmF1dG8gQWRkPGNoYXIsIGNoYXI+KGNoYXIgeCwgY2hhciB5KQp7CiAgICByZXR1cm4gc3RkOjpzdHJpbmcoIiIpICsgeCArIHk7Cn0KCmludCBtYWluKCkKewogICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKICAgIGNvdXQgPDwgQWRkKCd4JywgJ3knKSA8PCBlbmRsOwogICAgYXV0byB2ID0gQWRkKCd4JywgMSk7CiAgICBjb3V0IDw8IHYgPDwgZW5kbDsKICAgIGF1dG8gciA9IEFkZCgiaGVsbG8gInMsICdjJyk7CiAgICBjb3V0IDw8IHIgPDwgZW5kbDsKICAgIHJldHVybiBFWElUX1NVQ0NFU1M7Cn0=