#include <iostream>
#include <string>
#include <set>
using namespace std;
struct lexical_compare {
bool operator() (int a, int b) const {
return to_string(a) < to_string(b);
}
};
int main() {
set<int, lexical_compare> s;
s.insert('a');
s.insert('b');
s.insert('c');
s.insert('d');
for (int x : s)
cout << x << ' ';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGxleGljYWxfY29tcGFyZSB7Cglib29sIG9wZXJhdG9yKCkgKGludCBhLCBpbnQgYikgY29uc3QgewoJCXJldHVybiB0b19zdHJpbmcoYSkgPCB0b19zdHJpbmcoYik7Cgl9Cn07CgppbnQgbWFpbigpIHsKICAgIHNldDxpbnQsIGxleGljYWxfY29tcGFyZT4gczsKIAogICAgcy5pbnNlcnQoJ2EnKTsKICAgIHMuaW5zZXJ0KCdiJyk7CiAgICBzLmluc2VydCgnYycpOwogICAgcy5pbnNlcnQoJ2QnKTsKIAogICAgZm9yIChpbnQgeCA6IHMpCiAgICAgICAgY291dCA8PCB4IDw8ICcgJzsKIAogICAgcmV0dXJuIDA7Cn0=