func_code_string: #include <bits/stdc++.h>   using namespace std;   const int zsern = 1e6 + 1000;   const long long mod = 1e9 + 7;   const double pi = acos(-1.0);   long long n, k;   long long a[zsern];   std::vector<long long> num;   void gst(int id, int zser) {     if (id - 1 >= 0 && id - 1 != zser)       gst(id - 1, zser);     else if (id - 2 >= 0 && id - 2 != zser)       gst(id - 2, zser);     num.push_back(1 << id);     if (id - 1 >= 0 && id - 1 != zser)       gst(id - 1, zser);     else if (id - 2 >= 0 && id - 2 != zser)       gst(id - 2, zser);   }   void AC() {     long long x;     while (~scanf( %lld%lld , &n, &x)) {       long long zser = 0;       for (int i = 0; i <= 18; i++) {         if ((1ll << i) <= x) zser = i;       }       for (int i = n - 1; i >= 0; i--) {         if (i != zser) {           gst(i, zser);           break;         }       }       cout << num.size() << endl;       for (int i = 0; i < num.size(); i++) printf( %lld  , num[i]);     }   }   int main() {     AC();     return 0;   }   