#include <iostream>
#include <string>
#include <set>
#include <tuple>
using namespace std;
int main() {
auto lexical_compare = [](tuple<int, int> a, tuple<int, int> b) { return get<0>(a) == get<0>(b); };
set<tuple<int, int>, decltype(lexical_compare)> s(lexical_compare);
s.insert({1,2});
s.insert({1,3});
s.insert({2,1});
s.insert({2,2});
s.insert({2,3});
s.insert({1,1});
for (auto[x, y] : s)
cout << x << ' ' << y << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8dHVwbGU+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGF1dG8gbGV4aWNhbF9jb21wYXJlID0gW10odHVwbGU8aW50LCBpbnQ+IGEsIHR1cGxlPGludCwgaW50PiBiKSB7IHJldHVybiBnZXQ8MD4oYSkgPT0gZ2V0PDA+KGIpOyB9OwogICAgc2V0PHR1cGxlPGludCwgaW50PiwgZGVjbHR5cGUobGV4aWNhbF9jb21wYXJlKT4gcyhsZXhpY2FsX2NvbXBhcmUpOwogCiAgICBzLmluc2VydCh7MSwyfSk7CiAgICBzLmluc2VydCh7MSwzfSk7CiAgICBzLmluc2VydCh7MiwxfSk7CiAgICBzLmluc2VydCh7MiwyfSk7CiAgICBzLmluc2VydCh7MiwzfSk7CiAgICBzLmluc2VydCh7MSwxfSk7CiAKICAgIGZvciAoYXV0b1t4LCB5XSA6IHMpCiAgICAgICAgY291dCA8PCB4IDw8ICcgJyA8PCB5IDw8IGVuZGw7CiAKICAgIHJldHVybiAwOwp9