#include<bits/stdc++.h>
#define ll long long
#define int long long
#define int_128 __int128
#define lowbit(x) (x&(-x))
using namespace std;
int pos[2000005],n,m,len;
int a[2000005];
struct nd{
int l,r,lsize,rsize,maxx;
}c[50005];
void jisuan(int x){
int cnt=1,maxx=1;
c[pos[x]].lsize=0;
for(int i=c[pos[x]].l+1;i<=c[pos[x]].r;i++){
if(a[i]!=a[i-1]){
cnt++;
}
else {
maxx=max(maxx,cnt);
if(i-cnt+1==c[pos[x]].l){
c[pos[x]].lsize=cnt;
}
cnt=1;
}
}
if(c[pos[x]].lsize==0){
c[pos[x]].lsize=cnt;
}
c[pos[x]].rsize=cnt;
c[pos[x]].maxx=max(maxx,cnt);
}
void check(){
int ans=c[1].maxx,cnt=c[1].rsize;
for(int i=2;c[i].l;i++){
ans=max(ans,c[i].maxx);
ans=max(ans,c[i].rsize);
ans=max(ans,c[i].lsize);
if(a[c[i].l]!=a[c[i-1].r]){
cnt+=c[i].lsize;
ans=max(ans,cnt);
if(c[i].lsize!=c[i].r-c[i].l+1){
cnt=c[i].rsize;
}
}
else {
cnt=c[i].rsize;
}
}
cout<<ans<<"\n";
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
len=500;
for(int i=1;i<=n;i++){
a[i]=1;
pos[i]=i/len+(i%len!=0);
if(i%len==1){
c[pos[i]].l=i;
}
c[pos[i]].r=i;
c[pos[i]].maxx=1;
c[pos[i]].lsize=1;
c[pos[i]].rsize=1;
}
for(int i=1;i<=m;i++){
int x;
cin>>x;
a[x]=!a[x];
jisuan(x);
check();
}
return 0;
}