#include <bits/stdc++.h>
using namespace std;
int n, nr, v[1000006], x;
int uz[1000006];
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> x;
  uz[x] = 1;
  for (int i = 1; i < (1 << n); i++) {
    if (uz[i]) continue;
    uz[i ^ x] = 1;
    v[++nr] = i;
  }
  cout << nr << '\n';
  for (int i = 1; i <= nr; i++) {
    cout << (v[i] ^ v[i - 1]) << ' ';
  }
  return 0;
}
