import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int[] arr = new int[7];
        out: while(scanner.hasNext()){
            String str = scanner.nextLine();
            String[] splits = str.split("~");
            if(splits.length != 2){
                arr[5]++;
                continue;
            }
            //判断IP地址是否有错误
            String[] ip = splits[0].split("\\.");
            if(ip.length != 4){
                arr[5]++;
                continue;
            }
            int[] ipNum = new int[4];
            for(int i = 0; i < 4; i++){
                if(!ip[i].isEmpty()){
                    int num = Integer.parseInt(ip[i]);
                    if(num >= 0 && num <= 255){
                        ipNum[i] = num;
                    }else{
                        arr[5]++;
                        continue out;
                    }
                }else{
                    arr[5]++;
                    continue out;
                }
            }
            //判断子网掩码是否有错误
            String[] mark = splits[1].split("\\.");
            if(mark.length != 4){
                arr[5]++;
                continue;
            }
            StringBuilder markStr = new StringBuilder();
            for(int i = 0; i < 4; i++){
                String s = Integer.toBinaryString(Integer.parseInt(mark[i]));
                if(s.length() < 8){
                    int j = s.length();
                    while(j < 8){
                        markStr.append("0");
                        j++;
                    }
                }
                markStr.append(Integer.toBinaryString(Integer.parseInt(mark[i])));
            }
            int n = markStr.length();
            boolean flag0 = false;
            for(int i = 0; i < n; i++){
                if(markStr.charAt(i) == '0'){
                    flag0 = true;
                }else{
                    if(flag0){//前面有0出现
                        arr[5]++;
                        continue out;
                    }
                }
            }
            if(!flag0){
                arr[5]++;
                continue;
            }
            //判断网络类型
            if(ipNum[0] >= 1 && ipNum[0] < 127){
                arr[0]++;
            }else if(ipNum[0] >= 128 && ipNum[0] < 192){
                arr[1]++;
            }else if(ipNum[0] >= 192 && ipNum[0] < 224){
                arr[2]++;
            }else if(ipNum[0] >= 224 && ipNum[0] < 240){
                arr[3]++;
            }else if(ipNum[0] >= 240 && ipNum[0] <= 255){
                arr[4]++;
            }
            //判断私有IP
            if(ipNum[0] == 10 || (ipNum[0] == 172 && ipNum[1] >= 16 && ipNum[1] <= 31)
                    || (ipNum[0] == 192 && ipNum[1] == 168)){
                arr[6]++;
            }
        }
        scanner.close();

        System.out.println(arr[0] + " " + arr[1] + " " + arr[2]
                + " " + arr[3] + " " + arr[4] + " " + arr[5]
                + " " + arr[6]);
    }
}