#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll MOD = 1e9 + 7;
const int MAXN = 50001;
const ll base = 311;
int n,k;
char s[MAXN];
ll power[MAXN], hash_[MAXN];
ll f[MAXN], h[MAXN];
ll get_hash(int i, int j){
return (hash_[j] - hash_[i-1]*power[j-i+1] + MOD*MOD)%MOD;
}
int main(){
cin >> n >> k;
for (int i=1; i<=n; i++){
cin >> s[i];
}
power[0] = 1;
for (int i=1; i<=n; i++){
power[i] = (power[i-1]*base)%MOD;
}
for (int i=1; i<=n; i++){
hash_[i] = (hash_[i-1]*base + (ll)s[i])%MOD;
}
int ans = 0, l = 1, r = n;
while(l<=r){
int mid = (l+r)/2;
for (int i=1; i<= n - mid + 1; i++){
h[i] = get_hash(i,i+mid-1);
}
sort(h+1,h+n-mid+2);
f[1] = 1;
bool check = false;
for (int i=2; i<= n - mid + 1; i++){
if (h[i] == h[i-1]) f[i] = f[i-1] + 1;
else f[i] = 1;
if (f[i] >= k){
check = true;
break;
}
}
if (check){
ans = mid;
l = mid+1;
} else r = mid-1;
}
cout << ans;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGxsIE1PRCA9IDFlOSArIDc7CmNvbnN0IGludCBNQVhOID0gNTAwMDE7CmNvbnN0IGxsIGJhc2UgPSAzMTE7CgppbnQgbixrOwpjaGFyIHNbTUFYTl07CmxsIHBvd2VyW01BWE5dLCBoYXNoX1tNQVhOXTsKbGwgZltNQVhOXSwgaFtNQVhOXTsKCmxsIGdldF9oYXNoKGludCBpLCBpbnQgail7CiAgICByZXR1cm4gKGhhc2hfW2pdIC0gaGFzaF9baS0xXSpwb3dlcltqLWkrMV0gKyBNT0QqTU9EKSVNT0Q7Cn0KCgppbnQgbWFpbigpewogICAgY2luID4+IG4gPj4gazsKICAgIGZvciAoaW50IGk9MTsgaTw9bjsgaSsrKXsKICAgICAgICBjaW4gPj4gc1tpXTsKICAgIH0KCiAgICBwb3dlclswXSA9IDE7CiAgICBmb3IgKGludCBpPTE7IGk8PW47IGkrKyl7CiAgICAgICAgcG93ZXJbaV0gPSAocG93ZXJbaS0xXSpiYXNlKSVNT0Q7CiAgICB9CgogICAgZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspewogICAgICAgIGhhc2hfW2ldID0gKGhhc2hfW2ktMV0qYmFzZSArIChsbClzW2ldKSVNT0Q7CiAgICB9CgogICAgaW50IGFucyA9IDAsIGwgPSAxLCByID0gbjsKICAgIHdoaWxlKGw8PXIpewogICAgICAgIGludCBtaWQgPSAobCtyKS8yOwogICAgICAgIGZvciAoaW50IGk9MTsgaTw9IG4gLSBtaWQgKyAxOyBpKyspewogICAgICAgICAgICBoW2ldID0gZ2V0X2hhc2goaSxpK21pZC0xKTsKICAgICAgICB9CiAgICAgICAgc29ydChoKzEsaCtuLW1pZCsyKTsKICAgICAgICBmWzFdID0gMTsKICAgICAgICBib29sIGNoZWNrID0gZmFsc2U7CiAgICAgICAgZm9yIChpbnQgaT0yOyBpPD0gbiAtIG1pZCArIDE7IGkrKyl7CiAgICAgICAgICAgIGlmIChoW2ldID09IGhbaS0xXSkgZltpXSA9IGZbaS0xXSArIDE7CiAgICAgICAgICAgIGVsc2UgZltpXSA9IDE7CiAgICAgICAgICAgIGlmIChmW2ldID49IGspewogICAgICAgICAgICAgICAgY2hlY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGNoZWNrKXsKICAgICAgICAgICAgYW5zID0gbWlkOwogICAgICAgICAgICBsID0gbWlkKzE7CiAgICAgICAgfSBlbHNlIHIgPSBtaWQtMTsKICAgIH0KICAgIGNvdXQgPDwgYW5zOwp9Cg==