#include <bits/stdc++.h>
using namespace std;
namespace fastIO {
bool IOerror = 0;
inline char nc() {
  static char buf[100000], *p1 = buf + 100000, *pend = buf + 100000;
  if (p1 == pend) {
    p1 = buf;
    pend = buf + fread(buf, 1, 100000, stdin);
    if (pend == p1) {
      IOerror = 1;
      return -1;
    }
  }
  return *p1++;
}
inline bool blank(char ch) {
  return ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t';
}
inline long long read() {
  bool sign = 0;
  char ch = nc();
  long long x = 0;
  for (; blank(ch); ch = nc())
    ;
  if (IOerror) return 0;
  if (ch == '-') sign = 1, ch = nc();
  for (; ch >= '0' && ch <= '9'; ch = nc()) x = x * 10 + ch - '0';
  if (sign) x = -x;
  return x;
}
};  // namespace fastIO
using namespace fastIO;
long long a[1000010];
signed main() {
  long long n, k;
  cin >> n >> k;
  string s;
  cin >> s;
  long long len = s.length();
  long long nows = ' ', now = 0;
  for (long long i = 0; i < len; i++) {
    if (s[i] != nows) {
      a[nows] += now / k;
      now = 1;
      nows = s[i];
    } else
      now++;
  }
  a[nows] += now / k;
  long long ans = 0;
  for (long long i = 'a'; i <= 'z'; i++) ans = max(ans, a[i]);
  cout << ans;
  return 0;
}
