#include <iostream>
#include <set>
using namespace std;
struct cmp
{
bool operator() (const int &a, const int &b)
{
// returns true if a should go before b
return a > b;
}
};
int main()
{
set <int, cmp> s;
s.insert(2);
s.insert(20);
s.insert(12);
s.insert(-7);
for (int x : s)
cout << x << ' ';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c2V0PgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBjbXAKewogICAgYm9vbCBvcGVyYXRvcigpIChjb25zdCBpbnQgJmEsIGNvbnN0IGludCAmYikKCXsKCQkvLyByZXR1cm5zIHRydWUgaWYgYSBzaG91bGQgZ28gYmVmb3JlIGIKCQlyZXR1cm4gYSA+IGI7Cgl9Cn07CgppbnQgbWFpbigpCnsKCXNldCA8aW50LCBjbXA+IHM7CgkKCXMuaW5zZXJ0KDIpOwoJcy5pbnNlcnQoMjApOwoJcy5pbnNlcnQoMTIpOwoJcy5pbnNlcnQoLTcpOwoJCglmb3IgKGludCB4IDogcykKCQljb3V0IDw8IHggPDwgJyAnOwoJCglyZXR1cm4gMDsKfQ==