func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, step;   vector<string> ans;   bool isi[256];   int now[26];   string eb(int p) { return string( e ) + char(p +  a ) +  x ; }   string sz(int p) { return string(  ) + char(p +  0 ); }   void dfs(int x) {     if (x == step) {       if (isi[n]) {         printf( %d n , step);         for (int i = 0; i < ans.size(); i++) cout << ans[i] << endl;         exit(0);       }       return;     }     for (int i = 0; i <= x; i++)       for (int k = 1; k <= 8; k <<= 1) {         now[x + 1] = now[i] * k;         if (now[x + 1] > n || isi[now[x + 1]]) continue;         ans.push_back(string( lea  ) + eb(x + 1) +  , [  + sz(k) +  *  + eb(i) +                        ] );         isi[now[x + 1]] = 1;         dfs(x + 1);         ans.pop_back();         isi[now[x + 1]] = 0;       }     for (int i = 0; i <= x; i++)       for (int j = 0; j <= x; j++)         for (int k = 1; k <= 8; k <<= 1) {           now[x + 1] = now[i] + now[j] * k;           if (now[x + 1] > n || isi[now[x + 1]]) continue;           ans.push_back(string( lea  ) + eb(x + 1) +  , [  + eb(i) +   +   +                         sz(k) +  *  + eb(j) +  ] );           isi[now[x + 1]] = 1;           dfs(x + 1);           ans.pop_back();           isi[now[x + 1]] = 0;         }   }   int main() {     scanf( %d , &n);     for (step = 0;; step++) now[0] = isi[1] = 1, dfs(0);     return 0;   }   