#include <bits/stdc++.h>
using namespace std;
const int M = 1e9 + 7;
const int MOD = 1e9 + 7;
const double PI = 3.141592653589793238460;
long long power(long long a, long long b) {
  long long res = 1;
  if (a == 0) return 0;
  if (a == 1) return 1;
  for (; b > 0; b >>= 1) {
    if (b & 1) res = (res * a);
    if (res > MOD) res %= MOD;
    a = (a * a);
    if (a > MOD) a = a % MOD;
  }
  return res;
}
bool isPrime[1000000 + 1];
vector<long long> prime;
vector<int> divisor;
void seive2(int limit) {
  divisor = vector<int>(limit + 1, 0);
  for (int i = 2; i <= limit; i++) {
    if (divisor[i] == 0) {
      divisor[i] = i;
      if (i * 1ll * i <= limit)
        for (int j = i * i; j <= limit; j += i) divisor[j] = i;
    }
  }
}
void seive(int limit) {
  isPrime[0] = isPrime[1] = 1;
  for (int i = 2; i * i <= limit; i++) {
    if (!isPrime[i])
      for (int j = i * i; j <= limit; j += i) {
        isPrime[j] = 1;
      }
  }
  for (int i = 2; i <= limit; i++)
    if (!isPrime[i]) prime.push_back(i);
}
int pt[200100];
int sz[200100];
int finds(int x) {
  while (pt[x] != x) {
    pt[x] = pt[pt[x]];
    x = pt[x];
  }
  return x;
}
bool unions(int x, int y) {
  int xr = finds(x);
  int yr = finds(y);
  if (xr == yr) return 0;
  if (sz[xr] > sz[yr]) swap(xr, yr);
  sz[yr] += sz[xr];
  pt[xr] = yr;
  return 1;
}
vector<int> adj[200100];
void dfs(int x, int start, int p = -1) {
  if (x == start and p != -1) {
    return;
  }
  cout << x << ' ';
  for (int y : adj[x]) {
    if (y != p) {
      return dfs(y, start, x);
    }
  }
}
long long getSum(vector<int>& v1) {
  long long sum = 0;
  for (int i = 0; i < v1.size(); i++) sum += (long long)v1[i];
  return sum;
}
int n, k;
int arr[5001];
int dp[5001][5001];
int recur(int id, int tot = 0) {
  if (id >= n) {
    return 0;
  }
  if (dp[id][tot] != -1) return dp[id][tot];
  int ans = recur(id + 1, tot);
  if (tot < k) {
    int x = arr[id];
    int id2 = upper_bound(arr, arr + n, x + 5) - arr;
    ans = max(ans, (id2 - id) + recur(id2, tot + 1));
  }
  return dp[id][tot] = ans;
}
void solve() {
  cin >> n >> k;
  for (int i = 0; i < n; i++) cin >> arr[i];
  sort(arr, arr + n);
  for (int i = 0; i <= n; i++)
    for (int j = 0; j <= k; j++) dp[i][j] = -1;
  cout << recur(0, 0);
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0);
  int tt;
  tt = 1;
  while (tt--) {
    solve();
  }
}
