#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define nmax (long long)(1e6+7)
#define oo (long long)(1e18)
#define INF (int)(1e9+7)
#define fi first
#define se second
#define pii pair<ll, ll>
#define Hung "D"
using namespace std;
ll n, b[2007], dp[1 << 10][2007];
vector<pii> v;
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen(Hung".inp", "r")){
freopen(Hung".inp", "r", stdin);
freopen(Hung".out", "w", stdout);
}
cin >> n;
for (ll i = 1; i <= n; i++) cin >> b[i];
sort(b + 1, b + n + 1);
ll cnt = 0;
b[n + 1] = oo;
v.push_back({0, 0});
for (ll i = 1; i <= n; i++){
if (b[i] == b[i + 1]) cnt++;
else{
v.push_back({b[i], cnt + 1});
cnt = 0;
}
}
ll SEQ = ((1 << 1) | (1 << 8) | (1 << 9));
ll N = v.size() - 1;
for (ll mask = 0; mask < (1 << 10); mask++)
for (ll i = 0; i <= N; i++)
dp[mask][i] = oo;
dp[0][0] = v[0].se;
dp[1][0] = 0;
for (ll i = 0; i <= N; i++)
for (ll mask = 0; mask < (1 << 10); mask++){
ll newmask = (mask << (v[i + 1].fi - v[i].fi)) & ((1 << 10) - 1);
if (v[i + 1].fi - v[i].fi >= 10) newmask = 0;
dp[newmask][i + 1] = min(dp[newmask][i + 1], dp[mask][i] + v[i + 1].se);
if ((newmask & SEQ) == 0)
dp[newmask | 1][i + 1] = min(dp[newmask | 1][i + 1], dp[mask][i]);
}
ll res = oo;
for(ll mask = 0; mask < (1 << 10); mask++)
res = min(res, dp[mask][N]);
cout<<res;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBubWF4IChsb25nIGxvbmcpKDFlNis3KQojZGVmaW5lIG9vIChsb25nIGxvbmcpKDFlMTgpCiNkZWZpbmUgSU5GIChpbnQpKDFlOSs3KQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgcGlpIHBhaXI8bGwsIGxsPgojZGVmaW5lIEh1bmcgIkQiCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpsbCBuLCBiWzIwMDddLCBkcFsxIDw8IDEwXVsyMDA3XTsKdmVjdG9yPHBpaT4gdjsKCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpZiAoZm9wZW4oSHVuZyIuaW5wIiwgInIiKSl7CiAgICAgICAgZnJlb3BlbihIdW5nIi5pbnAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKEh1bmciLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGNpbiA+PiBuOwogICAgZm9yIChsbCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBiW2ldOwogICAgc29ydChiICsgMSwgYiArIG4gKyAxKTsKICAgIGxsIGNudCA9IDA7CiAgICBiW24gKyAxXSA9IG9vOwogICAgdi5wdXNoX2JhY2soezAsIDB9KTsKICAgIGZvciAobGwgaSA9IDE7IGkgPD0gbjsgaSsrKXsKICAgICAgICBpZiAoYltpXSA9PSBiW2kgKyAxXSkgY250Kys7CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgdi5wdXNoX2JhY2soe2JbaV0sIGNudCArIDF9KTsKICAgICAgICAgICAgY250ID0gMDsKICAgICAgICB9CiAgICB9CiAgICBsbCBTRVEgPSAoKDEgPDwgMSkgfCAoMSA8PCA4KSB8ICgxIDw8IDkpKTsKICAgIGxsIE4gPSB2LnNpemUoKSAtIDE7CiAgICBmb3IgKGxsIG1hc2sgPSAwOyBtYXNrIDwgKDEgPDwgMTApOyBtYXNrKyspCiAgICAgICAgZm9yIChsbCBpID0gMDsgaSA8PSBOOyBpKyspCiAgICAgICAgICAgIGRwW21hc2tdW2ldID0gb287CiAgICBkcFswXVswXSA9IHZbMF0uc2U7CiAgICBkcFsxXVswXSA9IDA7CiAgICBmb3IgKGxsIGkgPSAwOyBpIDw9IE47IGkrKykKICAgICAgICBmb3IgKGxsIG1hc2sgPSAwOyBtYXNrIDwgKDEgPDwgMTApOyBtYXNrKyspewogICAgICAgICAgICBsbCBuZXdtYXNrID0gKG1hc2sgPDwgKHZbaSArIDFdLmZpIC0gdltpXS5maSkpICYgKCgxIDw8IDEwKSAtIDEpOwogICAgICAgICAgICBpZiAodltpICsgMV0uZmkgLSB2W2ldLmZpID49IDEwKSBuZXdtYXNrID0gMDsKICAgICAgICAgICAgZHBbbmV3bWFza11baSArIDFdID0gbWluKGRwW25ld21hc2tdW2kgKyAxXSwgZHBbbWFza11baV0gKyB2W2kgKyAxXS5zZSk7CiAgICAgICAgICAgIGlmICgobmV3bWFzayAmIFNFUSkgPT0gMCkKICAgICAgICAgICAgICAgIGRwW25ld21hc2sgfCAxXVtpICsgMV0gPSBtaW4oZHBbbmV3bWFzayB8IDFdW2kgKyAxXSwgZHBbbWFza11baV0pOwogICAgICAgIH0KCiAgICBsbCByZXMgPSBvbzsKICAgIGZvcihsbCBtYXNrID0gMDsgbWFzayA8ICgxIDw8IDEwKTsgbWFzaysrKQogICAgICAgIHJlcyA9IG1pbihyZXMsIGRwW21hc2tdW05dKTsKICAgIGNvdXQ8PHJlczsKICAgIHJldHVybiAwOwp9