#include <bits/stdc++.h>
using namespace std;
void executeTime() {
cerr << "Time Taken: " << (float)clock() / CLOCKS_PER_SEC << " secs";
}
int main() {
int n, k; cin >> n >> k;
string s; cin >> s;
multiset<char> ms;
int i = 0, ans = 0;
//two pointer template
//expanding
for (int j = 0; j < n; j++) {
ms.insert(s[j]);
// shrinking
while (i <= j && *(--ms.end()) - *ms.begin() > k) {
ms.erase(ms.find(s[i]));
i++;
}
ans = max(ans, j - i + 1);
}
cout << ans << endl;
executeTime();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGV4ZWN1dGVUaW1lKCkgewogICAgY2VyciA8PCAiVGltZSBUYWtlbjogIiA8PCAoZmxvYXQpY2xvY2soKSAvIENMT0NLU19QRVJfU0VDIDw8ICIgc2VjcyI7Cn0KCmludCBtYWluKCkgewoKCiAgICBpbnQgbiwgazsgY2luID4+IG4gPj4gazsKICAgIHN0cmluZyBzOyBjaW4gPj4gczsKCiAgICBtdWx0aXNldDxjaGFyPiBtczsKCiAgICBpbnQgaSA9IDAsIGFucyA9IDA7CgogICAgLy90d28gcG9pbnRlciB0ZW1wbGF0ZQoKICAgIC8vZXhwYW5kaW5nCiAgICBmb3IgKGludCBqID0gMDsgaiA8IG47IGorKykgewogICAgICAgIG1zLmluc2VydChzW2pdKTsKCiAgICAgICAgLy8gc2hyaW5raW5nCiAgICAgICAgd2hpbGUgKGkgPD0gaiAmJiAqKC0tbXMuZW5kKCkpIC0gKm1zLmJlZ2luKCkgPiBrKSB7CiAgICAgICAgICAgIG1zLmVyYXNlKG1zLmZpbmQoc1tpXSkpOwogICAgICAgICAgICBpKys7CiAgICAgICAgfQoKICAgICAgICBhbnMgPSBtYXgoYW5zLCBqIC0gaSArIDEpOwogICAgfQoKICAgIGNvdXQgPDwgYW5zIDw8IGVuZGw7CgogICAgZXhlY3V0ZVRpbWUoKTsKICAgIHJldHVybiAwOwp9