#include <bits/stdc++.h>
using namespace std;
long long dp[5001][5001];
vector<long long> v;
int n;
long long ret(long long k, long long pos) {
  if (pos >= n || k <= 0) return 0;
  if (n - pos <= k) return n - pos;
  if (dp[pos][k]) return dp[pos][k];
  auto idx = upper_bound(v.begin(), v.end(), v[pos] + 5) - v.begin() - pos;
  dp[pos][k] = max(ret(k, pos + 1), idx + ret(k - 1, pos + idx));
  return dp[pos][k];
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long k;
  cin >> n >> k;
  v.resize(n);
  for (unsigned long long i = 0; i < n; i++) cin >> v[i];
  sort(v.begin(), v.end());
  cout << ret(k, 0);
  return 0;
}
