#include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; ll dp[3][100010]; ll cnt[3][85]; int f(char c){ if(c=='J')return 0; else if(c=='O')return 1; else return 2; } int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int n,k; cin >> n >> k; for(int i=0;i<3;i++){ for(int j=0;j<=k;j++){ dp[i][j]=2e18; } } dp[0][0]=dp[1][0]=dp[2][0]=0; vector s(n); vector c(n); for(int i=0;i> s[i] >> c[i]; for(char c:s[i]){ cnt[f(c)][i]++; } } for(int i=0;i<3;i++){ for(ll j=0;j<=k;j++){ for(int p=0;p0;j--){ dp[i][j-1]=min(dp[i][j],dp[i][j-1]); } } ll res=2e18; if(dp[0][1]==2e18||dp[1][1]==2e18||dp[2][1]==2e18){ printf("-1\n"); return 0; } for(int i=0;i=k&&s[i][p]=='I')I++; } if(cnt