#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;
}