#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define endl "\n"
#define FOR(i, a, b) for (int i = a; i <= b; i++)
#define FORD(i, a, b) for (int i = a; i > b; i--)
#define FORu(i, a, b) for (int i = a; i < b; i++)
#define vii vector <int>
#define pb push_back
#define fi first
#define se second
#define sz(a) (int)a.size()
#define all(x) x.begin(), x.end()
#define filei "BAI5.INP"
#define fileo "BAI5.out"
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen(filei, "r"))
{
freopen(filei, "r", stdin);
freopen(fileo, "w", stdout);
}
ll n, cnt = 0; cin >> n;
vector <ll> a;
FORu(i, 0, n)
{
ll x; cin >> x;
if (x == 0) cnt++;
else a.pb(x);
}
sort(a.begin(), a.end());
ll max_len = 0;
int j = 0;
FORu(i, 0, sz(a))
{
while (j < sz(a))
{
ll len = a[j] - a[i] + 1;
ll leng = j - i + 1;
if (len - leng > cnt) break;
j++;
}
if (j - i - 1 >= 0)
{
max_len = max(max_len, a[j - 1] - a[i] + 1);
}
}
cout << max_len;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVuZGwgIlxuIgojZGVmaW5lIEZPUihpLCBhLCBiKSBmb3IgKGludCBpID0gYTsgaSA8PSBiOyBpKyspCiNkZWZpbmUgRk9SRChpLCBhLCBiKSBmb3IgKGludCBpID0gYTsgaSA+IGI7IGktLSkKI2RlZmluZSBGT1J1KGksIGEsIGIpIGZvciAoaW50IGkgPSBhOyBpIDwgYjsgaSsrKQojZGVmaW5lIHZpaSB2ZWN0b3IgPGludD4gCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBzeihhKSAoaW50KWEuc2l6ZSgpCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQojZGVmaW5lIGZpbGVpICJCQUk1LklOUCIKI2RlZmluZSBmaWxlbyAiQkFJNS5vdXQiCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpZiAoZm9wZW4oZmlsZWksICJyIikpCiAgICB7CiAgICAgICAgZnJlb3BlbihmaWxlaSwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbihmaWxlbywgInciLCBzdGRvdXQpOwogICAgfQogICAgbGwgbiwgY250ID0gMDsgY2luID4+IG47CiAgICB2ZWN0b3IgPGxsPiBhOwogICAgRk9SdShpLCAwLCBuKQogICAgewogICAgCWxsIHg7IGNpbiA+PiB4OwogICAgCWlmICh4ID09IDApIGNudCsrOwogICAgCWVsc2UgYS5wYih4KTsKICAgIH0KICAgIHNvcnQoYS5iZWdpbigpLCBhLmVuZCgpKTsKICAgIGxsIG1heF9sZW4gPSAwOwogICAgaW50IGogPSAwOwogICAgRk9SdShpLCAwLCBzeihhKSkKICAgIHsKICAgIAl3aGlsZSAoaiA8IHN6KGEpKQogICAgCXsKICAgIAkJbGwgbGVuID0gYVtqXSAtIGFbaV0gKyAxOwogICAgCQlsbCBsZW5nID0gaiAtIGkgKyAxOwogICAgCQlpZiAobGVuIC0gbGVuZyA+IGNudCkgYnJlYWs7CiAgICAJCWorKzsKICAgIAl9CiAgICAJaWYgKGogLSBpIC0gMSA+PSAwKQogICAgCXsKICAgIAkJbWF4X2xlbiA9IG1heChtYXhfbGVuLCBhW2ogLSAxXSAgLSBhW2ldICsgMSk7CiAgICAJfQogICAgfQogICAgY291dCA8PCBtYXhfbGVuOwogICAgCiAgICAKICAgIAogICAgCn0=