#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;
}