#include <iostream>
#include <string>
#include <vector>
#include <cctype>
#include <cstdlib>
#include <stdexcept>
#include <initializer_list>

using namespace std;

const string& f(const string &s1, const string &s2)
{
        return s1.size() < s2.size() ? s1 : s2;
}

string& f(string &s1, string &s2)
{
        auto ret = f(const_cast<const string&>(s1), const_cast<const string&>(s2));
        return const_cast<string&>(ret);
}

int main(int argc, char *argv[])
{
        string x = "xxxxxx";
        string y = "yyy";

        string &z = f(x, y);

        cout << z << endl;

        cout << z << y << endl;
}
