#include<iostream>
using namespace std;
const int N=2e5+5;
int n,m,l[N*4],r[N*4],ans[N*4],len[N*4],s[N*4],e[N*4];
void pushup(int u){
int lx=2*u,rx=2*u+1;
if(r[lx]!=l[rx]){
ans[u]=max(ans[u],e[lx]+s[rx]);
ans[u]=max(ans[u],max(ans[lx],ans[rx]));
if(s[lx]==len[lx])s[u]=max(s[u],s[lx]+s[rx]);
if(e[rx]==e[rx])e[u]=max(e[u],e[lx]+e[rx]);
}
else ans[u]=max(ans[u],max(ans[lx],ans[rx]));
l[u]=l[lx];
r[u]=r[rx];
s[u]=max(s[u],s[lx]);
e[u]=max(e[u],e[rx]);
}
void kkk(int u,int k){
ans[u]=s[u]=e[u]=1;
l[u]=r[u]=k;
}
void ch(int u,int lx,int rx,int x){
if(lx==rx){
kkk(u,l[u]^1);
return;
}
int mid=(lx+rx)/2;
if(x<=mid)ch(u*2,lx,mid,x);
else ch(u*2+1,mid+1,rx,x);
pushup(u);
}
void build(int lx,int rx,int u){
int mid=(lx+rx)/2;
len[u]=rx-lx+1;
if(lx==rx){
kkk(u,0);
return;
}
build(lx,mid,2*u);
build(mid+1,rx,2*u+1);
pushup(u);
}
int main(){
cin>>n>>m;
build(1,n,1);
for(int i=1;i<=m;i++){
int x;
cin>>x;
ch(1,1,n,x);
cout<<ans[1]<<endl;
}
}