#include <iostream>
#include <string>
#include <set>
using namespace std;
struct lexical_compare {
bool operator() (int a, int b) {
return to_string(a) < to_string(b);
}
};
int main() {
set<int, lexical_compare> s;
s.insert(1);
s.insert(10);
s.insert(11);
s.insert(100);
for (int x : s)
cout << x << ' ';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGxleGljYWxfY29tcGFyZSB7Cglib29sIG9wZXJhdG9yKCkgIChpbnQgYSwgaW50IGIpIHsKCQlyZXR1cm4gdG9fc3RyaW5nKGEpIDwgdG9fc3RyaW5nKGIpOwoJfQp9OwoKaW50IG1haW4oKSB7CiAgICBzZXQ8aW50LCBsZXhpY2FsX2NvbXBhcmU+IHM7CiAKICAgIHMuaW5zZXJ0KDEpOwogICAgcy5pbnNlcnQoMTApOwogICAgcy5pbnNlcnQoMTEpOwogICAgcy5pbnNlcnQoMTAwKTsKIAogICAgZm9yIChpbnQgeCA6IHMpCiAgICAgICAgY291dCA8PCB4IDw8ICcgJzsKIAogICAgcmV0dXJuIDA7Cn0=