#include <iostream>
#include <set>
#include <iterator>
#include <tuple>
using namespace std;
struct keker{
int a;
int b;
};
bool operator < (const keker& a, const keker& b)
{
return tie(a.a,a.b) < tie(b.a,b.b);
}
int main(int argc, char const *argv[])
{
set<keker> rofl;
keker k1,k2,k3,k4;
k1.a =1;
k2.a =2;
k3.a =3;
k4.a =4;
rofl.insert(k1);
rofl.insert(k2);
rofl.insert(k3);
rofl.insert(k4);
auto it = rofl.begin();
cout << it->a <<endl;
it++;
cout << it->a <<endl;
it++;
cout << it->a <<endl;
it++;
cout << it->a <<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDx0dXBsZT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3Qga2VrZXJ7CgogICAgaW50IGE7CiAgICBpbnQgYjsKCn07Cgpib29sIG9wZXJhdG9yIDwgKGNvbnN0IGtla2VyJiBhLCBjb25zdCBrZWtlciYgYikKewogICAgcmV0dXJuIHRpZShhLmEsYS5iKSA8IHRpZShiLmEsYi5iKTsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgY29uc3QgKmFyZ3ZbXSkKewoKICAgIHNldDxrZWtlcj4gcm9mbDsKCiAgICBrZWtlciBrMSxrMixrMyxrNDsKCiAgICBrMS5hID0xOwoKICAgIGsyLmEgPTI7CgogICAgazMuYSA9MzsKCiAgICBrNC5hID00OwoKCiAgICByb2ZsLmluc2VydChrMSk7CiAgICByb2ZsLmluc2VydChrMik7CiAgICByb2ZsLmluc2VydChrMyk7CiAgICByb2ZsLmluc2VydChrNCk7CgogICAgYXV0byBpdCA9IHJvZmwuYmVnaW4oKTsKICAgIGNvdXQgPDwgaXQtPmEgPDxlbmRsOwogICAgaXQrKzsKICAgIGNvdXQgPDwgaXQtPmEgPDxlbmRsOwogICAgaXQrKzsKICAgIGNvdXQgPDwgaXQtPmEgPDxlbmRsOwogICAgaXQrKzsKICAgIGNvdXQgPDwgaXQtPmEgPDxlbmRsOwoKICAgIHJldHVybiAwOwoKfQo=