#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int INF = 0x3f3f3f3f;
const long long INF64 = 1e18 + 1;
const int NMAX = 500055;
int n, k;
int a[NMAX];
int U0D0 = 0;
int U1D0 = 1;
int U0D1 = 2;
int U1D1 = 3;
vector<int> combine_state[4][4];
int increment(int state) {
  int ans = 0;
  if (state & 1) ans++;
  if (state & 2) ans += 2;
  return ans;
}
vector<int> dp(int l, int r) {
  vector<int> ans = {-INF, -INF, -INF, -INF};
  if (l + 1 == r) {
    int nr = a[l] + a[r];
    if (nr == 0) {
      ans[U0D0] = 0;
    }
    if (nr == 1) {
      ans[U1D0] = 1;
      ans[U0D1] = 1;
    }
    if (nr == 2) {
      ans[U1D1] = 1;
    }
    return ans;
  }
  int pivot = (l + r) / 2;
  auto lf = dp(l, pivot);
  auto rf = dp(pivot + 1, r);
  for (int l = 0; l < 4; ++l) {
    for (int r = 0; r < 4; ++r) {
      for (auto nxt : combine_state[l][r]) {
        ans[nxt] = max(ans[nxt], lf[l] + rf[r] + increment(nxt));
      }
    }
  }
  return ans;
}
int solve() {
  cin >> n >> k;
  if (k == 0) {
    cout << 0 << "\n";
    return 0;
  }
  for (int i = 1; i <= k; ++i) {
    int b;
    cin >> b;
    a[b] = 1;
  }
  combine_state[U0D0][U0D0] = {U0D0};
  combine_state[U1D0][U0D0] = {U1D0, U0D1};
  combine_state[U0D1][U0D0] = {U0D0, U0D1};
  combine_state[U1D1][U0D0] = {U1D0, U1D1, U0D0, U0D1};
  combine_state[U0D0][U1D0] = combine_state[U1D0][U0D0];
  combine_state[U1D0][U1D0] = {U1D0, U1D1};
  combine_state[U0D1][U1D0] = {U0D0, U0D1, U1D0, U1D1};
  combine_state[U1D1][U1D0] = {U1D0, U1D1};
  combine_state[U0D0][U0D1] = combine_state[U0D1][U0D0];
  combine_state[U1D0][U0D1] = combine_state[U0D1][U1D0];
  combine_state[U0D1][U0D1] = {U0D0, U0D1};
  combine_state[U1D1][U0D1] = {U0D1, U1D1, U1D0};
  combine_state[U0D0][U1D1] = combine_state[U1D1][U0D0];
  combine_state[U1D0][U1D1] = combine_state[U1D1][U1D0];
  combine_state[U0D1][U1D1] = combine_state[U1D1][U0D1];
  combine_state[U1D1][U1D1] = {U1D1};
  auto ans = dp(1, (1 << (n)));
  cout << *max_element(ans.begin(), ans.end()) + 1 << "\n";
  return 0;
};
int main() {
  std::cin.tie(0);
  std::ios_base::sync_with_stdio(0);
  std::cout << std::setprecision(16) << fixed;
  int T = 1;
  while (T--) {
    solve();
  }
  return 0;
}
