#include<iostream>
#include<vector>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,m,size,ans;
int  t[100000];
int dp[100000][2];
bool flg;

void init(){
  dp[0][0]=1;
  dp[0][1]=2;
  size=0;
  flg=false;
  ans=0;
}

int main(){

  while(cin>>n>>m&&n&&m){
    init();
    for(int i=0;i<m;i++){
      scanf("%d",&t[size]);
      if(t[size]==0)flg=true;
      else size++;
    }
    sort(t,t+m);
    for(int i=1;i<size;i++){
      if(t[i]-1==t[i-1]){
	dp[i][0]=dp[i-1][0]+1;
	dp[i][1]=dp[i-1][1]+1;
      }else if(t[i]-2==t[i-1]){
	dp[i][1]=dp[i-1][0]+2;
	dp[i][0]=1;
      }else{
	dp[i][0]=1;
	dp[i][1]=2;
      }
      ans=max(ans,dp[i][0]);
      if(flg)ans=max(ans,dp[i][1]);
    }
    if(ans>n)ans--;
    cout<<ans<<endl;
  }
}