#include<bits/stdc++.h>
#define int long long
#define ss second
#define ff first
#define pb push_back
const int mxn=30005;
using namespace std;
signed main(){
    ios_base::sync_with_stdio(false); 
	cin.tie(0); 
	cout.tie(0);
    int n,k;
    cin>>n>>k;
    string s;
    cin>>s;
    vector<int> v[3];
    for(int i=0; i<n; i++) {
        if(s[i]=='J') v[0].pb(i);
        if(s[i]=='O') v[1].pb(i);
        if(s[i]=='I') v[2].pb(i);
    }
    int mn=1e9;
    for(int i=k-1; i<v[0].size(); i++) {
        int l=v[0][i-k+1];
        int y=upper_bound(v[1].begin(),v[1].end(),v[0][i])-v[1].begin();
        if(y+k-1>=v[1].size()) {
            continue;
        }
        y=v[1][y+k-1];
        y=upper_bound(v[2].begin(),v[2].end(),y)-v[2].begin();
        if(y+k-1>=v[2].size()) {
            continue;
        }
        y=v[2][y+k-1];
        mn=min(mn,(n-3*k)-(l+(n-y-1)));
    }
    if(mn==1e9) 
    	cout<<"-1";
    else
    	cout<<mn;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |