#include <bits/stdc++.h>
using namespace std;
int N, K;
map<char, vector<int>> P;
int Go(char i, int cur) {
int pos = lower_bound(P[i].begin(), P[i].end(), cur) - P[i].begin();
return (P[i].size() < pos + K ? 1e9 : P[i][pos + K - 1] + 1);
}
int main() {
string S, JOI = "JOI";
cin >> N >> K >> S;
for (int i = 0; i < N; ++i) P[S[i]].push_back(i);
int ans = 1e9;
for (int n : P['J']) {
int t = n;
for (char c : JOI) t = Go(c, t);
ans = min(ans, t - n - 3 * K);
}
cout << (N < ans ? -1 : ans);
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |