#include <bits/stdc++.h>
#include <cstdio>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;


bool isValidIP(string s){
    stringstream ss(s);
    string seg;
    vector<string> ips;
    while(getline(ss, seg, '.')){
        ips.push_back(seg);
    }
    int ip = stoi(ips[0]);
    if( ip == 0 || ip == 127 ) return false;
    return true;
}

bool isErrIP(string s){
    stringstream ss(s);
    string seg;
    int i = 0;
    while(getline(ss, seg, '.')){
        if(++i > 4 || seg.empty() || stoi(seg) > 255) return true;
    }
    return false;
}

bool isErrMask(string s){
    stringstream ss(s);
    string seg;
    unsigned int x = 0;
    while(getline(ss, seg, '.')){
        x = (x << 8) + stoi(seg);
    }
    if(x == 0 || (~x) == 0) return true;
    int tz = __builtin_ctz(x); // 返回二进制的后缀零
    int n = 32 - __builtin_popcount(x); // 返回二进制的1的个数, 若32 - 1的个数 != 后缀零 说明不合法
    if(tz != n) return true;
    return false;
}

bool isPrivate(vector<int>& res){
    if(res[0] == 10) return true;
    if(res[0] == 172 && res[1] >= 16 && res[1] <= 31) return true;
    if(res[0] == 192 && res[1] == 168) return true;
    return false;
}

void setIPType(string s, vector<int>& output){
    stringstream ss(s);
    string seg;
    vector<int> res;
    while(getline(ss, seg, '.')){
        res.push_back(stoi(seg));
    }
    if(isPrivate(res)){
        output[6]++;
    }
    if(res[0] >= 1 && res[0] <= 126) output[0]++;
    if(res[0] >= 128 && res[0] <= 191) output[1]++;
    if(res[0] >= 192 && res[0] <= 223) output[2]++;
    if(res[0] >= 224 && res[0] <= 239) output[3]++;
    if(res[0] >= 240 && res[0] <= 255) output[4]++;
}

int main() {
    string input;
    // a b c d e errIp|errMask pIp
    // 0 1 2 3 4      5        6
    vector<int> output(7);
    while (cin >> input) { 
        stringstream ss(input);
        vector<string> addr;
        string str;
        while(getline(ss, str, '~')){
            addr.push_back(str);
        }
        if(!isValidIP(addr[0])) continue;
        if(isErrIP(addr[0]) || isErrMask(addr[1]) ){
            output[5]++;
            continue;
        }
        setIPType(addr[0], output);
    }
    for(int i = 0; i < 7; i++){
        cout << output[i] << " ";
    }
    cout << endl;
}
// 64 位输出请用 printf("%lld")

难顶