#include<bits/stdc++.h>
using namespace std;
#define int long long
#define for1(i,m,n) for(int i=m;i<=n;i++)
#define for0(i,m,n) for(int i=m;i<n;i++)
#define vll(v) v.begin(),v.end()
#define ii pair<int,int>
#define se second
#define fi first
#define el '\n'
const int N=1e7;
const int MOD=1e9+7;
struct ju{
int giatri,l,r;
};
vector<ju>d;
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int m,n;cin>>m>>n;
vector<int>v(n);
for(auto &x:v) cin>>x;
sort(vll(v));
int st=v[1],dem=1;
for0(i,1,n){
if(v[i+1]-1!=v[i]){
d.push_back({dem,st,v[i]});
st=v[i+1];
dem=1;
}
else
dem++;
}
int ans=0,ans_=0;
bool ok=0;
for0(i,0,d.size()-1){
if(d[i].r==d[i+1].l-2) {
ok=1;
ans=max(ans,d[i].giatri+d[i+1].giatri+1);
}
if(d[i].r!=d[i].l-1){
ans_=max(ans_,d[i].giatri);
}
// ans_++;
}
if(ok)
cout<<ans;
else cout<<ans_+1;
return 0;
}
/*
8 5
8 2 0 5 7
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgaW50ICBsb25nIGxvbmcKCiNkZWZpbmUgZm9yMShpLG0sbikgZm9yKGludCBpPW07aTw9bjtpKyspCiNkZWZpbmUgZm9yMChpLG0sbikgZm9yKGludCBpPW07aTxuO2krKykKI2RlZmluZSB2bGwodikgdi5iZWdpbigpLHYuZW5kKCkKICNkZWZpbmUgaWkgcGFpcjxpbnQsaW50PgogI2RlZmluZSBzZSBzZWNvbmQKICNkZWZpbmUgZmkgZmlyc3QKICNkZWZpbmUgZWwgJ1xuJwoKIGNvbnN0IGludCBOPTFlNzsKIGNvbnN0IGludCBNT0Q9MWU5Kzc7CiBzdHJ1Y3QganV7CiAgIGludCBnaWF0cmksbCxyOwogfTsKdmVjdG9yPGp1PmQ7CiBzaWduZWQgbWFpbigpewogICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICBjaW4udGllKDApOwogICBjb3V0LnRpZSgwKTsKCiAgIGludCBtLG47Y2luPj5tPj5uOwogICB2ZWN0b3I8aW50PnYobik7CiAgIGZvcihhdXRvICZ4OnYpIGNpbj4+eDsKICAgIHNvcnQodmxsKHYpKTsKICAgIGludCBzdD12WzFdLGRlbT0xOwogICAgZm9yMChpLDEsbil7CiAgICAgaWYodltpKzFdLTEhPXZbaV0pewogICAgICAgIGQucHVzaF9iYWNrKHtkZW0sc3QsdltpXX0pOwogICAgICAgIHN0PXZbaSsxXTsKICAgICAgICBkZW09MTsKICAgICB9CiAgICAgZWxzZQogICAgICAgZGVtKys7CiAgICB9CiAgICBpbnQgYW5zPTAsYW5zXz0wOwogICAgYm9vbCBvaz0wOwogICAgZm9yMChpLDAsZC5zaXplKCktMSl7CiAgICAgaWYoZFtpXS5yPT1kW2krMV0ubC0yKSB7CiAgICAgICAKICAgICAgIG9rPTE7CiAgICAgICBhbnM9bWF4KGFucyxkW2ldLmdpYXRyaStkW2krMV0uZ2lhdHJpKzEpOwogICAgIH0KICAgICBpZihkW2ldLnIhPWRbaV0ubC0xKXsKICAgICAgIGFuc189bWF4KGFuc18sZFtpXS5naWF0cmkpOwogICAgIH0KICAgIC8vIGFuc18rKzsKICAgIH0KICAgIGlmKG9rKQogICAgY291dDw8YW5zOwogICAgZWxzZSBjb3V0PDxhbnNfKzE7CiAgICByZXR1cm4gMDsKIH0KLyoKOCA1CjggMiAwIDUgNwoqLwo=