#include<iostream>
#include<vector>
struct JOI{
char c;
int n;
};
std::vector<JOI> jv;
std::string str;
void kako(){
char c = str[0];
int n = 1;
int str_length = str.size();
for(int i=1;i<str_length;i++){
if(c != str[i]){
jv.push_back({c, n});
c = str[i];
n = 1;
}else{
n++;
}
}
jv.push_back({c, n});
}
int main(){
std::cin >> str;
kako();
int jv_size = jv.size(), k = 0;
for(int l=0;l+2<jv_size;l++){
JOI j = jv[l], o = jv[l+1], i = jv[l+2];
if(j.c == 'J' && o.c == 'O' && i.c == 'I' && j.n >= o.n && i.n >= o.n){
k = std::max(k, o.n);
}
}
std::cout << k << std::endl;
}