#include<bits/stdc++.h>
#define ll long long
#define int long long
#define int_128 __int128
#define lowbit(x) (x&(-x))
using namespace std;
inline int read() {
int s=0;
char ch=getchar();
while(ch<'0'||ch>'9') ch=getchar();
while(ch>='0'&&ch<='9') {
s=(s<<3)+(s<<1)+(ch^48);
ch=getchar();
}
return s;
}
inline void write(int x) {
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
int pos[2000005],n,m,len;
char a[2000005];
struct nd{
int l,r,lsize,rsize,maxx;
}c[50005];
void jisuan(int x){
int cnt=1,maxx=1;
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;
}
}
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+1].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!=len){
cnt=c[i].rsize;
}
}
}
cout<<ans<<"\n";
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
len=447;
for(int i=1;i<=n;i++){
a[i]='L';
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;
if(a[x]=='L') a[x]='R';
else a[x]='L';
jisuan(x);
check();
}
return 0;
}