#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define ff first
#define ss second
#define pb push_back
#define vi vector<int>
#define fr(i,ii,iii) for(int i=ii;i<iii;i++)
const int N=2e5+5;
int n,k;
int nxt[N][3];
string a;
int main(){
cin>>n>>k>>a;
int ls[3]={-1,-1,-1};
for(int i=a.size()-1;i>=0;i--){
if(a[i]=='J')ls[0]=i;
if(a[i]=='O')ls[1]=i;
if(a[i]=='I')ls[2]=i;
fr(j,0,3)nxt[i][j]=ls[j];
}
fr(j,0,3)nxt[a.size()][j]=-1;
int ans=1e6;
fr(i,0,a.size()){
if(a[i]!='J')continue;
int i1=i;
fr(j,0,k-1){
i1=nxt[i1+1][0];
if(i1==-1)goto end;
}
int i2=i1;
fr(j,0,k){
i2=nxt[i2+1][1];
if(i2==-1)goto end;
}
int i3=i2;
fr(j,0,k){
i3=nxt[i3+1][2];
if(i2==-1)goto end;
}
int ans1=i3-i+1-3*k;
ans=min(ans,ans1);
}
end:;
cout<<(ans==1e6?-1:ans);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |