Problem: problem

Create a program that counts the number of consecutive JOI or IOI characters in a given character string. The character string consists only of uppercase letters of the alphabet. For example, the character string "JOIOIOI" in the figure below contains JOI in one place and IOI in two places.

<image>



input

The input consists of multiple datasets. Each dataset is one line and consists of uppercase letters of the alphabet of 10,000 characters or less. Input ends with EOF.

The number of datasets does not exceed 5.

output

For each dataset, output the number of JOIs found in the first line and the number of IOIs found in the second line.

Examples

Input

JOIJOI
JOIOIOIOI
JOIOIJOINXNXJIOIOIOJ


Output

2
0
1
3
2
3


Input

None


Output

None

Solution (in JAVA):

Solution:
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws java.io.IOException {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            char[] in = sc.next().toCharArray();
            System.out.println(joi(in));
            System.out.println(ioi(in));
        }
    }

    public static int joi(char[] in) {
        int ans = 0;
        char buf = '0';
        for (int i = 0; i < in.length; i++) {
            switch (in[i]) {
            case 'J':
                buf = in[i];
                break;
            case 'O':
                if (buf == 'J') {
                    buf = 'O';
                } else
                    buf = '0';
                break;
            case 'I':
                if (buf == 'O') {
                    buf = '0';
                    ans++;
                } else
                    buf = '0';
                break;
            default:
                buf = '0';
            }
        }
        return ans;
    }

    public static int ioi(char[] in) {
        int ans = 0;
        char buf = '0';
        for (int i = 0; i < in.length; i++) {
            switch (in[i]) {
            case 'I':
                if (buf == 'O') {
                    buf = 'I';
                    ans++;
                }
                buf = in[i];
                break;
            case 'O':
                if (buf == 'I') {
                    buf = 'O';
                } else
                    buf = '0';
                break;
            default:
                buf = '0';
            }
        }
        return ans;
    }
}