func_code_string: #include <bits/stdc++.h>   using namespace std;   const long double eps = 1e-9;   const int inf = (1 << 30) - 1;   const long long inf64 = ((long long)1 << 62) - 1;   const long double pi = acos(-1);   template <class T>   T sqr(T x) {     return x * x;   }   template <class T>   T abs(T x) {     return x < 0 ? -x : x;   }   template <class T>   vector<T> ReadVector(int n) {     vector<T> a(n);     for (int i = 0; i < n; ++i) {       cin >> a[i];     }     return a;   }   template <class T>   void WriteVector(const vector<T>& a) {     for (int i = 0; i < ((int)(a).size()); ++i) {       cout << a[i] << (i + 1 < ((int)(a).size()) ?     :   n );     }   }   void Solve() {     long long x;     cin >> x;     vector<long long> a;     a.push_back(x);     vector<string> res;     while (a[0] != 1) {       long long val = -1;       for (int i = 0; i < ((int)(a).size()); ++i) {         for (int j = 0; j <= i; ++j) {           long long tmp = a[i] + a[j];           val = tmp;           for (int k = ((int)(a).size()) - 1; k >= 0; --k) {             tmp = min(tmp, tmp ^ a[k]);           }           if (tmp > 0) {             res.push_back(to_string(a[i]) +   +   + to_string(a[j]));             break;           }           val = -1;         }         if (val > 0) {           break;         }       }       for (int i = ((int)(a).size()) - 1; i >= 0; --i) {         if ((val ^ a[i]) < val) {           res.push_back(to_string(a[i]) +   ^   + to_string(val));           val ^= a[i];         }       }       for (int i = 0; i < ((int)(a).size()); ++i) {         if ((a[i] ^ val) < a[i]) {           res.push_back(to_string(a[i]) +   ^   + to_string(val));           a[i] ^= val;         }       }       a.push_back(val);       sort((a).begin(), (a).end());     }     cout << ((int)(res).size()) <<   n ;     for (int i = 0; i < ((int)(res).size()); ++i) {       cout << res[i] <<   n ;     }   }   int main() {     ios_base::sync_with_stdio(0);     std::cin.tie(nullptr);     int tc = 1;     for (int ti = 0; ti < tc; ++ti) {       Solve();     }     return 0;   }   