#include using namespace std; #define st first #define nd second #define pb push_back using ll = long long; using db = double; using ldb = long double; using pii = pair; using pll = pair; void solve(){ ll n; cin >> n; if(n == 1){ cout << 0 << "\n"; return; } vector facts; ll cur = 1; ll last = 1; while(cur <= n){ facts.pb(cur); cur *= last; last += 1; if(last == 11) break; } vector ans; while(n > 0){ ll best = 0; int id = 0; for(int i=0;i odp; if(was){ odp.pb(1); was = false; } sort(ans.begin(), ans.end()); for(int x : ans){ if(x == 0 && bylo){ bylo = false; continue; } odp.pb(x); } for(int x : odp) cout << x; cout << "\n"; } int main() { solve(); return 0; }