#include using namespace std; #define MOD 1000000007 #define pb push_back #define mp make_pair #define all(c) (c).begin(),(c).end() #define sz(a) int((a).size()) #define F first #define S second #define rep(i, a, b) for(int i = a; i < b; ++i) #define per(i, a, b) for(int i = a; i >= b; --i) #define travel(c,itr) for(__typeof((c).begin()) itr=(c).begin();itr!=(c).end();itr++) #define INDEX(arr,ind) (lower_bound(all(arr),ind)-arr.begin()) #define scan(x) do{while((x=getchar())<'0'); for(x-='0'; '0'<=(_=getchar()); x=(x<<3)+(x<<1)+_-'0');}while(0) char _; typedef long long ll; typedef long double ld; typedef vector vi; typedef pair pii; typedef pair pli; typedef pair pll; typedef pair piii; typedef pair plll; typedef vector vpii; typedef vector vpiii; inline ll powmod(ll x, ll n, ll _mod){ ll res = 1; while (n){ if (n & 1)res = (res*x) % _mod; x = (x*x) % _mod; n >>= 1; } return res; } // y = upper_bound(x) finds y > x /* //seive of erasthones int p[1000006]; vi primes; void gen(){ memset(p,1,sizeof p); for(int i=2;i<1000006;i++){ if(p[i]==0)continue; for(int j=2;i*j<1000006;j++){ p[i*j]=1; } } for(int i=2;i<1000006;i++){ if(p[i]){ primes.pb(i); } } //for(int i=0;i<10;i++)cout<>n; rep(i,0,n){ cin>>a[i]; c[a[i]]++; } int ans=1; rep(i,0,120){ if(c[i]){ ans=max(ans,c[i]+c[i-1]); ans=max(ans,c[i]+c[i+1]); } } cout<