#include #include #include #include #include #include using namespace std; int fact(int n) { int ret = 1; for(int i = 2; i <=n; i++) ret *= i; return ret; } int npr(int n, int r) { return fact(n)/fact(n-r); } int countem(int i) { int ret = 9; for(int j = 1; j < i; j++) ret *= (10-j); return ret; } bool bad(int i) { int digs[10]; memset(digs, 0, sizeof(digs)); while(i) { if(digs[i%10]) return true; digs[i%10] = 1; i/=10; } return false; } void run() { int n; cin >> n; if(n == 0) exit(0); int first = 1; int digs = 1; int perms = 9; while(n > perms) { n -= perms; digs++; perms = countem(digs); first *= 10; } // just do it! int ret = 1; int used = 1; while(n || used strength) { n -= strength; ret++; } else { ret *= 10; used++; } } cout << ret << endl; } int main() { while(1) run(); }