#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll n,k;
cin >> n >> k;
string s;
cin >> s;
queue<ll> j,o;
ll next[n];
ll pos[n+1][3];
ll num[3];
memset(num,0,sizeof(num));
for (int i=0;i<n;i++){
if (s[i]=='J'){
j.push(i);
pos[num[0]][0] = i;
num[0]++;
}
else if (s[i]=='O'){
o.push(i);
while (!j.empty()){
next[j.front()] = num[1];
j.pop();
}
pos[num[1]][1] = i;
num[1]++;
}
else if (s[i]=='I'){
while (!o.empty()){
next[o.front()] = num[2];
o.pop();
}
pos[num[2]][2] = i;
num[2]++;
}
}
ll ans = -1;
for (int i=0;i<=num[0]-k;i++){
ll s1 = pos[i+k-1][0];
if (next[s1]==-1) continue;
s1 = next[s1];
if (s1+k-1 >= num[1]) continue;
s1 = pos[s1+k-1][1];
if (next[s1]==-1) continue;
s1 = next[s1];
if (s1+k-1 >= num[2]) continue;
ans = max(ans,n-1-pos[s1+k-1][2]+pos[i][0]);
}
if (ans==-1) cout << -1;
else cout << n-ans-3*k;
}