#include <iostream>
#include <set>
#include <string>
using namespace std;
struct cmp {
bool operator ()(const string &s1, const string &s2)
{
if(s1.size() < s2.size()) return true;
if(s1.size() > s2.size()) return false;
return s1 < s2;
}
};
int main() {
set<string, cmp> solution;
solution.insert("12X451");
solution.insert("X23454");
solution.insert("12345");
solution.insert("12315");
solution.insert("123111");
solution.insert("5231");
for (auto s : solution)
{
cout << s << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGNtcCB7Cglib29sIG9wZXJhdG9yICgpKGNvbnN0IHN0cmluZyAmczEsIGNvbnN0IHN0cmluZyAmczIpCgl7CgkgIGlmKHMxLnNpemUoKSA8IHMyLnNpemUoKSkgcmV0dXJuIHRydWU7CgkgIGlmKHMxLnNpemUoKSA+IHMyLnNpemUoKSkgcmV0dXJuIGZhbHNlOwoJICByZXR1cm4gczEgPCBzMjsKCX0KfTsKCmludCBtYWluKCkgewoJc2V0PHN0cmluZywgY21wPiBzb2x1dGlvbjsKCiAgICBzb2x1dGlvbi5pbnNlcnQoIjEyWDQ1MSIpOwogICAgc29sdXRpb24uaW5zZXJ0KCJYMjM0NTQiKTsKICAgIHNvbHV0aW9uLmluc2VydCgiMTIzNDUiKTsKICAgIHNvbHV0aW9uLmluc2VydCgiMTIzMTUiKTsKICAgIHNvbHV0aW9uLmluc2VydCgiMTIzMTExIik7CiAgICBzb2x1dGlvbi5pbnNlcnQoIjUyMzEiKTsKCiAgICBmb3IgKGF1dG8gcyA6IHNvbHV0aW9uKQogICAgewogICAgICAgIGNvdXQgPDwgcyA8PCBlbmRsOwogICAgfQoJcmV0dXJuIDA7Cn0=