#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
#pragma GCC optimize ("Ofast")
int32_t main()
{
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int n,k;
string str;
cin>>n>>k>>str;
vector<int> J,O,I;
for (int i = 0; i < n; ++i)
{
if (str[i] == 'J')
J.push_back(i);
else if (str[i] == 'O')
O.push_back(i);
else
I.push_back(i);
}
int mnn = n+1;
for (int i = 0; i < J.size()-k+1; i++)
{
int l = J[i], r = 0;
r = upper_bound(O.begin(),O.end(),J[i+k-1])-O.begin();
if (r + k-1 >= O.size())
continue;
r = upper_bound(I.begin(),I.end(),O[r+k-1])-I.begin();
if (r + k - 1 >= I.size())
continue;
mnn = min(mnn, I[r+k-1]-l+1);
}
if (mnn == n+1)
{
cout<<-1<<endl;
}
else
{
cout<<mnn-3*k<<endl;
}
return 0;
}