#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
// - Bài toán "loại bỏ ít phần tử nhất" <=> Bài toán "chọn nhiều phần tử nhất"
// - Nhận xét: Khi xét đến b[i], ta chỉ cần quan tâm tới các b[j] sao cho b[i] - b[j] <= 9
// <=> b(j) >= b(i) - 9
// - Do đó, nếu mảng b đã được sort và chỉ chứa các giá trị phân biệt,
// thì khi xét đến b[i], ta chỉ cần quan tâm đến tối đa 9 phần tử liền trước nó.
template<typename T>
void maximize(T& a, const T& b) {
if (a < b) a = b;
}
const int N = 2e3 + 5;
int n;
int b[N];
int cnt[N]; // cnt[i] = Số lần xuất hiện của b[i]
int dp[N][1 << 9]; // dp[i][mask] = Độ dài dãy con SEQ198 dài nhất khi xét i phần tử đầu tiên,
// với mask biểu diễn các phần tử được chọn trong 9 phần tử gần i nhất (bao gồm cả i)
bool check(int i, int prev_mask) {
for (int k = 0; k < 9; k++) {
if ((prev_mask >> k) & 1) {
int j = i - 1 - k;
if (j < 1) continue;
int d = b[i] - b[j];
if (d == 1 || d == 8 || d == 9) return false;
}
}
return true;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n;
for (int i = 1; i <= n; i++) cin >> b[i];
sort(b + 1, b + n + 1);
int m = 0;
int cur = -1;
for (int i = 1; i <= n; i++) {
if (b[i] == cur) {
++cnt[m];
}
else {
++m;
b[m] = b[i];
cnt[m] = 1;
cur = b[i];
}
}
for (int i = 0; i <= m; i++) {
for (int mask = 0; mask < (1 << 9); mask++) dp[i][mask] = -INF;
}
dp[0][0] = 0;
for (int i = 1; i <= m; i++) {
for (int prev_mask = 0; prev_mask < (1 << 9); prev_mask++) {
int mask = (prev_mask << 1) & 511;
// Không chọn b[i]
maximize(dp[i][mask], dp[i - 1][prev_mask]);
// Chọn b[i]
if (check(i, prev_mask)) maximize(dp[i][mask | 1], dp[i - 1][prev_mask] + cnt[i]);
}
}
int ans = 0;
for (int mask = 0; mask < (1 << 9); mask++) {
maximize(ans, dp[m][mask]);
}
ans = n - ans;
cout << ans << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKLy8gLSBCw6BpIHRvw6FuICJsb+G6oWkgYuG7jyDDrXQgcGjhuqduIHThu60gbmjhuqV0IiA8PT4gQsOgaSB0b8OhbiAiY2jhu41uIG5oaeG7gXUgcGjhuqduIHThu60gbmjhuqV0IgovLyAtIE5o4bqtbiB4w6l0OiBLaGkgeMOpdCDEkeG6v24gYltpXSwgdGEgY2jhu4kgY+G6p24gcXVhbiB0w6JtIHThu5tpIGPDoWMgYltqXSBzYW8gY2hvIGJbaV0gLSBiW2pdIDw9IDkgCi8vICAgICAgICAgICAgIDw9PiBiKGopID49IGIoaSkgLSA5IAovLyAtIERvIMSRw7MsIG7hur91IG3huqNuZyBiIMSRw6MgxJHGsOG7o2Mgc29ydCB2w6AgY2jhu4kgY2jhu6lhIGPDoWMgZ2nDoSB0cuG7iyBwaMOibiBiaeG7h3QsCi8vICAgdGjDrCBraGkgeMOpdCDEkeG6v24gYltpXSwgdGEgY2jhu4kgY+G6p24gcXVhbiB0w6JtIMSR4bq/biB04buRaSDEkWEgOSBwaOG6p24gdOG7rSBsaeG7gW4gdHLGsOG7m2MgbsOzLiAgCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnZvaWQgbWF4aW1pemUoVCYgYSwgY29uc3QgVCYgYikgewoJaWYgKGEgPCBiKSBhID0gYjsgIAp9Cgpjb25zdCBpbnQgTiA9IDJlMyArIDU7IAoKaW50IG47IAppbnQgYltOXTsgCmludCBjbnRbTl07IC8vIGNudFtpXSA9IFPhu5EgbOG6p24geHXhuqV0IGhp4buHbiBj4bunYSBiW2ldCmludCBkcFtOXVsxIDw8IDldOyAvLyBkcFtpXVttYXNrXSA9IMSQ4buZIGTDoGkgZMOjeSBjb24gU0VRMTk4IGTDoGkgbmjhuqV0IGtoaSB4w6l0IGkgcGjhuqduIHThu60gxJHhuqd1IHRpw6puLCAKCQkJCSAgIC8vICAgICAgICAgICAgICAgduG7m2kgbWFzayBiaeG7g3UgZGnhu4VuIGPDoWMgcGjhuqduIHThu60gxJHGsOG7o2MgY2jhu41uIHRyb25nIDkgcGjhuqduIHThu60gZ+G6p24gaSBuaOG6pXQgKGJhbyBn4buTbSBj4bqjIGkpICAgIAoKYm9vbCBjaGVjayhpbnQgaSwgaW50IHByZXZfbWFzaykgewoJZm9yIChpbnQgayA9IDA7IGsgPCA5OyBrKyspIHsKCQlpZiAoKHByZXZfbWFzayA+PiBrKSAmIDEpIHsKCQkJaW50IGogPSBpIC0gMSAtIGs7ICAKCQkJaWYgKGogPCAxKSBjb250aW51ZTsgCgkJCWludCBkID0gYltpXSAtIGJbal07IAoJCQlpZiAoZCA9PSAxIHx8IGQgPT0gOCB8fCBkID09IDkpIHJldHVybiBmYWxzZTsgCgkJfQoJfQoJcmV0dXJuIHRydWU7IAp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgCgljaW4udGllKG51bGxwdHIpOyAJCgljaW4gPj4gbjsgCglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBiW2ldOwoKCXNvcnQoYiArIDEsIGIgKyBuICsgMSk7IAoJaW50IG0gPSAwOyAgIAoJaW50IGN1ciA9IC0xOyAgCglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKCQlpZiAoYltpXSA9PSBjdXIpIHsKCQkJKytjbnRbbV07IAoJCX0KCQllbHNlIHsKCQkJKyttOyAgCgkJCWJbbV0gPSBiW2ldOyAKCQkJY250W21dID0gMTsgCgkJCWN1ciA9IGJbaV07IAoJCX0KCX0gIAoKCWZvciAoaW50IGkgPSAwOyBpIDw9IG07IGkrKykgewoJCWZvciAoaW50IG1hc2sgPSAwOyBtYXNrIDwgKDEgPDwgOSk7IG1hc2srKykgZHBbaV1bbWFza10gPSAtSU5GOyAKCX0KCWRwWzBdWzBdID0gMDsgIAoKCWZvciAoaW50IGkgPSAxOyBpIDw9IG07IGkrKykgewoJCWZvciAoaW50IHByZXZfbWFzayA9IDA7IHByZXZfbWFzayA8ICgxIDw8IDkpOyBwcmV2X21hc2srKykgewoJCQlpbnQgbWFzayA9IChwcmV2X21hc2sgPDwgMSkgJiA1MTE7IAoJCQkvLyBLaMO0bmcgY2jhu41uIGJbaV0KCQkJbWF4aW1pemUoZHBbaV1bbWFza10sIGRwW2kgLSAxXVtwcmV2X21hc2tdKTsKCQkJLy8gQ2jhu41uIGJbaV0KCQkJaWYgKGNoZWNrKGksIHByZXZfbWFzaykpIG1heGltaXplKGRwW2ldW21hc2sgfCAxXSwgZHBbaSAtIDFdW3ByZXZfbWFza10gKyBjbnRbaV0pOyAKCQl9Cgl9CgoJaW50IGFucyA9IDA7ICAgCglmb3IgKGludCBtYXNrID0gMDsgbWFzayA8ICgxIDw8IDkpOyBtYXNrKyspIHsKCQltYXhpbWl6ZShhbnMsIGRwW21dW21hc2tdKTsgCgl9CglhbnMgPSBuIC0gYW5zOyAgCgoJY291dCA8PCBhbnMgPDwgJ1xuJzsgCn0=