#include <vector>
#include <string>
#include <iostream>
#include <iomanip>
#include <set>
#include <type_traits>

using namespace std;

template <typename Container,
          typename = enable_if_t<!is_same<Container,string>::value>>
ostream& operator<<(ostream& out, const Container& container)
{
    bool isnt_first = false;
    for (const auto& element : container)
    {
        if (isnt_first) {
            out << ", "s << element;
        }
        else {
            out << element;
            isnt_first = true;
        }
    }
    return out;
}

int main() {

    //setlocale(LC_ALL, "ru");

    const set<string> cats = { "Мурка"s, "Белка"s, "Георгий"s, "Рюрик"s };
    cout << cats << endl;
    return 0;
}

