#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
ll n, q, ans;
ll digit(ll x) {
ll ans = 0;
while (x) {
x >>= 1;
ans++;
}
return ans;
}
bool get(ll x, ll dig) {
if (dig == 1) return x & 1;
return (x >> (dig-1)) & 1;
}
int main(void) {
cin >> n >> q;
while (q--) {
ll k;
cin >> k;
if (get(n, k) == 0) {
if (digit(n) < k) {
ans += ((1 << (k-1)) - n);
n = (1 << (k-1));
} else {
if (k == 1) {
n++;
ans++;
} else {
ll high = n >> (k-1);
high++;
high = high << (k-1);
ans += (high-n);
n = high;
}
}
}
}
cout << ans;
return 0;
}