#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,q,k,ans,x;
int main(){
cin>>n>>q;
while(q--){
cin>>k;
if(n>>k&1==1) continue;
x=(1<<k)-(n&((1<<k)-1));
n+=x,ans+=x;
}
cout<<ans;
return 0;
}
思路:如果说第 k 位不为 0,则最少增加 1<<k - 原有的后 k 位。