#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int n, k;
cin >> n >> k;
string x;
cin >> x;
vector<int> J, O, I;
for(int i = 0; i < n; i++){
if(x[i] == 'J'){
J.push_back(i);
}
else if(x[i] == 'O'){
O.push_back(i);
}
else{
I.push_back(i);
}
}
int ans = 1e18;
for(int i = 0; i < n; i++){
auto itJ = lower_bound(J.begin(), J.end(), i) - J.begin();
itJ += k - 1;
if(itJ >= J.size()){
break;
}
auto itO = lower_bound(O.begin(), O.end(), J[itJ]) - O.begin();
itO += k - 1;
if(itO >= O.size()){
break;
}
auto itI = lower_bound(I.begin(), I.end(), O[itO]) - I.begin();
itI += k - 1;
if(itI >= I.size()){
break;
}
ans = min(ans, I[itI] - i- 3*k + 1);
}
if(ans == 1e18){
cout << -1;
return 0;
}
cout << ans;
return 0;
}