#include <bits/stdc++.h>
#define ls (p<<1)
#define rs ((p<<1)+1)
#define len(i) (tree[i].r-tree[i].l+1)
using namespace std;
class SegmentTree
{
public:
int v,l,r;
int lt,rt;
}tree[1600001];
int n;
void pushup(int p)
{
if (tree[ls].r!=tree[rs].l)
{
tree[p].v=tree[ls].rt+tree[rs].lt;
tree[p].v=max(tree[p].v,tree[ls].v);
tree[p].v=max(tree[p].v,tree[rs].v);
}
else tree[p].v=max(tree[ls].v,tree[rs].v);
tree[p].l=tree[ls].l,tree[p].r=tree[rs].r;
if (tree[ls].lt==len(ls) && tree[ls].r!=tree[rs].l)
tree[p].lt=tree[ls].lt+tree[rs].lt;
else tree[p].lt=tree[ls].lt;
if (tree[rs].rt==len(rs) && tree[ls].r!=tree[rs].l)
tree[p].rt=tree[ls].rt+tree[rs].rt;
else tree[p].rt=tree[rs].rt;
}
void build(int p,int l,int r)
{
if (l==r)
{
tree[p].l=tree[p].r=1;
tree[p].lt=tree[p].rt=tree[p].v=1;
return;
}
int mid=(l+r)>>1;
build(ls,l,mid);
build(rs,mid+1,r);
pushup(p);
}
void modify(int p,int l,int r,int d)
{
if (l==r)
{
tree[p].l^=1;
tree[p].r^=1;
return;
}
int mid=(l+r)>>1;
if (d<=mid) modify(ls,l,mid,d);
else modify(rs,mid+1,r,d);
pushup(p);
}
int main()
{
//COCI STEP
int q,x,i;
scanf("%d%d",&n,&q);
build(1,1,n);
while(q--)
{
scanf("%d",&x);
modify(1,1,n,x);
printf("%d\n",tree[1].v);
}
}