#include <iostream>
#include <string>
#include <set>
#include <type_traits>
using namespace std;

bool lexical_compare(int a, int b) {
	return to_string(a) < to_string(b);
}

using LexicalCompare = std::integral_constant<decltype(&lexical_compare), &lexical_compare>;

int main() {
    set<int, LexicalCompare> s;
 
    s.insert(1);
    s.insert(10);
    s.insert(11);
    s.insert(100);
 
    for (int x : s)
        cout << x << ' ';
 
    return 0;
}