#include <iostream>
#include <string>
#include <set>
using namespace std;
class Feat
{
public:
Feat(int a){ _a = a;}
int GetA() {return _a;}
int _a;
};
struct lexical_compare {
bool operator() (Feat a, Feat b) const {
return a.GetA() < b.GetA();
}
};
int main() {
set<Feat, lexical_compare> s;
s.insert(Feat(1));
s.insert(Feat(10100));
s.insert(Feat(18));
s.insert(Feat(100));
for (Feat x : s)
cout << x.GetA() << ' ';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgRmVhdCAKewpwdWJsaWM6CglGZWF0KGludCBhKXsgX2EgPSBhO30KCWludCBHZXRBKCkge3JldHVybiBfYTt9CglpbnQgX2E7Cn07CnN0cnVjdCBsZXhpY2FsX2NvbXBhcmUgewoJYm9vbCBvcGVyYXRvcigpIChGZWF0IGEsIEZlYXQgYikgY29uc3QgewoJCXJldHVybiBhLkdldEEoKSA8IGIuR2V0QSgpOwoJfQp9OwoKaW50IG1haW4oKSB7CiAgICBzZXQ8RmVhdCwgbGV4aWNhbF9jb21wYXJlPiBzOwogCiAgICBzLmluc2VydChGZWF0KDEpKTsKICAgIHMuaW5zZXJ0KEZlYXQoMTAxMDApKTsKICAgIHMuaW5zZXJ0KEZlYXQoMTgpKTsKICAgIHMuaW5zZXJ0KEZlYXQoMTAwKSk7CiAKICAgIGZvciAoRmVhdCB4IDogcykKICAgICAgICBjb3V0IDw8IHguR2V0QSgpIDw8ICcgJzsKIAogICAgcmV0dXJuIDA7Cn0=