#include<cstdio>
#include<vector>
#include<algorithm>
#include<cstring>
#include<string>
#include<cassert>

#define FOR(v,p,k) for(int v=p;v<=k;++v)
#define REP(i,n) for(int i=0;i<(n);++i)
#define VAR(v,i) __typeof(i) v=(i)
#define FOREACH(i,c) for(VAR(i,(c).begin());i!=(c).end();++i)
#define MP make_pair
#define SIZE(x) (int)x.size()

using namespace std;

typedef vector< vector<int> > tgraph;
typedef vector< vector< pair<int,int> > > twgraph;

int read_int() {
    int sres,value;
    sres = scanf("%d",&value);
    assert(sres==1);
    return value;
}

vector<int> read_int_array(int size = -1) {
    int n, sres;
    vector<int> res;
    if (size == -1) {
        sres = scanf("%d", &n);
        assert(sres == 1);
    } else {
        n = size;
    }
    res.resize(n);
    for (int i = 0; i < n; i++) {
        sres = scanf("%d", &res[i]);
        assert(sres == 1);
    }
    return res;
}

// -----------------------------------

int solve(vector< int > &v) {
    int n=SIZE(v);
    assert(n>0);
    sort(v.begin(), v.end());

    int res=1;
    int last_value=-1;
    int len=0;
    REP(i, n) {
        int value=v[i];
        if (value-last_value > 1) {
            len=1;
        } else {
            len++;
            res=max(res, len);
        }
        last_value=value;
    }
    return res;
}

int main() {
    vector < int > v = read_int_array();
    printf("%d\n",solve(v));
    return 0;
}