#include <bits/stdc++.h>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
string s;
cin >> s;
vector<int> str;
vector<int> ji, oi, ii;
for (int i = 0; i < n; ++i) {
if (s[i] == 'J') {
ji.push_back(i);
}
if (s[i] == 'O' && ji.size() >= k) {
oi.push_back(i);
}
if (s[i] == 'I' && oi.size() >= k) {
ii.push_back(i);
}
}
int minop = INT_MAX;
if (ji.size() < k || oi.size() < k || ii.size() < k) {
cout << -1 << '\n';
return 0;
}
for (int i = 0; i < ji.size() - k + 1; ++i) {
int opos = lower_bound(oi.begin(), oi.end(), ji[i + k - 1]) - oi.begin();
if (opos + k - 1 >= oi.size()) {
break;
}
int ipos = lower_bound(ii.begin(), ii.end(), oi[opos + k - 1]) - ii.begin();
if (ipos + k - 1 >= ii.size()) {
break;
}
int endpos = ii[ipos + k - 1];
minop = min(minop, endpos - ji[i] + 1 - k * 3);
}
if (minop == INT_MAX) {
cout << -1 << '\n';
return 0;
}
cout << minop << '\n';
return 0;
}