#include <bits/stdc++.h>
#include <sstream>
#include <vector>
using namespace std;
//11.27
int A = 0, B = 0, C = 0, D = 0, E = 0, wrong = 0, p = 0; //p是私有
bool isvalid_mask(string mask) {
    int res[32];//存放掩码的二进制
    for (int i = 0; i < 32; i++) res[i] = 0;
    stringstream ss(mask);
    string t;
    int k = 1;
    int j;
    while (getline(ss, t, '.')) {
        int num = stoi(t);
        j = 1;
        while (num > 0) {
            res[8 * k - j] = num % 2;
            num /= 2;
            j++;
        }
        k++;
    }
    //检查res
    //全是0,非法
    if (res[0] == 0) return false;
    for (int i = 1; i < 32; i++) {
        if (res[i] == 0) {
            for (int ii = i + 1; ii < 32; ii++) {
                // cout<<"kkk";
                if (res[ii] == 1) return false;
            }
        }
    }
    if (res[31] == 1) return false; //全是1,非法
    return true;
}
void check(string ip) {
    stringstream ss(ip);
    string t;
    vector<string> my_ip;
    while (getline(ss, t, '.')) {
        if (t.empty() || stoi(t) > 255) { //不合法的ip
            wrong++;
            return;
        }
        my_ip.push_back(t);
    }
    if (stoi(my_ip[0]) >= 1 && stoi(my_ip[0]) <= 126) A++;
    if (stoi(my_ip[0]) >= 128 && stoi(my_ip[0]) <= 191) B++;
    if (stoi(my_ip[0]) >= 192 && stoi(my_ip[0]) <= 223) C++;
    if (stoi(my_ip[0]) >= 224 && stoi(my_ip[0]) <= 239) D++;
    if (stoi(my_ip[0]) >= 240 && stoi(my_ip[0]) <= 255) E++;
    if (stoi(my_ip[0]) == 10) p++;
    if (stoi(my_ip[0]) == 172 && (stoi(my_ip[1]) == 16 ||
                                  stoi(my_ip[1]) == 31)) p++;
    if (stoi(my_ip[0]) == 192 && (stoi(my_ip[1]) == 168)) p++;
    return;
}
bool isnone(string ip)
{
    stringstream ss(ip);
    string t;
    vector<string> ipp;
    while(getline(ss,t,'.'))
    {
        if(!t.empty()) ipp.push_back(t);
    }
    if(ipp.size()==4&&(stoi(ipp[0])==0||stoi(ipp[0])==127)) return true;
    return false;
}
int main() {
    string s;
    while (getline(cin, s)) {
        stringstream ss(s);
        string ip, mask, t;
        int c = 1;
        while (getline(ss, t, '~')) {
            if (c == 1) ip = t;
            else mask = t;
            c++;
        }
        //
        if(isnone(ip)) continue;
        //检查mask
        if (isvalid_mask(mask) == 0) {
            //掩码非法
            wrong++;
            continue;
        }
        //检查ip
        check(ip);

    }
    cout << A << " " << B << " " << C << " " << D << " " << E << " " << wrong << " "
         << p << endl;

}
// 64 位输出请用 printf("%lld")