#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, k;
  cin >> n >> k;
  vector<int> arr(n);
  for (int i = 0; i < n; i++) {
    cin >> arr[i];
  }
  sort(arr.begin(), arr.end());
  vector<vector<int>> dp(n, vector<int>(1 + k, -1e9));
  for (int i = 0; i < n; i++) {
    dp[i][0] = 0;
  }
  int Max = 0;
  for (int i = 0; i < n; i++) {
    int last =
        upper_bound(arr.begin(), arr.end(), arr[i] + 5) - arr.begin() - 1;
    for (int j = 1; j <= k; j++) {
      if (i > 0) {
        dp[last][j] = max(dp[last][j], dp[i - 1][j - 1] + last - i + 1);
        dp[i][j] = max(dp[i][j], dp[i - 1][j]);
      } else if (j == 1) {
        dp[last][j] = max(dp[last][j], last - i + 1);
      }
      Max = max(Max, dp[i][j]);
    }
  }
  cout << Max;
  return 0;
}
