#include<bits/stdc++.h>
#include<vector>
using namespace std;

int ip[4], ipy[4];
string s;
string s1, s2;
int A = 0,B = 0,C = 0,D = 0,E = 0,S = 0,EIP = 0;

void check() {
    int index = 0;
    int sum = 0;
    for(int i = 0; i < s1.size(); i++) {
        if(i == 0 && s1[i] == '.') {
            ip[0] = -1;
            index++;
        }
        else if(s1[i] == '.' && s1[i - 1] != '.') {
            ip[index] = sum;
            sum = 0;
            index++;
        } else if(s1[i] == '.' && s1[i - 1] == '.') {
            ip[index] = -1;
            index++;
        }
        else {
            sum = sum * 10 + s1[i] - '0';
        }
        if(i == s1.size() - 1) ip[index] = sum;
    }
    int index2 = 0;
    int sum2 = 0;
    for(int i = 0; i < s2.size(); i++) {
        if(i == 0 && s2[i] == '.') {
            ipy[0] = -1;
            index2++;
        }
        else if(s2[i] == '.' && s2[i - 1] != '.') {
            ipy[index2] = sum2;
            sum2 = 0;
            index2++;
        } else if(s2[i] == '.' && s2[i - 1] == '.') {
            ipy[index2] = -1;
            index2++;
        }
        else {
            sum2 = sum2 * 10 + s2[i] - '0';
        }
        if(i == s2.size() - 1) ipy[index2] = sum2;
    }
}

void add()
{
    for(int i = 0; i < 4; i++) {
        if(ip[i] == -1 || ip[i] > 255) {
            EIP++;
            return;
        }
    }
    if((ipy[0] == 255 && ipy[1] == 255 && ipy[2] == 255 && ipy[3] == 255) || (ipy[0] == 0 && ipy[1] == 0 && ipy[2] == 0 && ipy[3] == 0)) {
        EIP++;
        return;
    }
    for(int i = 0; i < 4; i++) {
        if(ipy[i] == -1 || ipy[i] > 255) {
            EIP++;
            return;
        }
    }
    for(int i = 3; i >= 0; i--) {
        if(ipy[i] != 0) {
            for(int j = 0; j < i; j++) {
                if(ipy[j] != 255) {
                    EIP++;
                    return;
                }
            }
            if(ipy[i] != 255 && ipy[i] != 254 && ipy[i] != 252 && ipy[i] != 248 && ipy[i] != 240 && ipy[i] != 224 && ipy[i] != 192 && ipy[i] != 128) {
                EIP++;
                return;
            }
        }
        if(i == 0 && ipy[0] == 0) {
            EIP++;
            return;
        }
    }
    if(ip[0] == 0 || ip[0] == 127) return;
    if(ip[0] >= 1 && ip[0] <= 126) A++;
    if(ip[0] >= 128 && ip[0] <= 191) B++;
    if(ip[0] >= 192 && ip[0] <= 223) C++;
    if(ip[0] >= 224 && ip[0] <= 239) D++;
    if(ip[0] >= 240 && ip[0] <= 255) E++;
    if(ip[0] == 10) S++;
    if(ip[0] == 172 && ip[1] >= 16 && ip[1] <= 31) S++;
    if(ip[0] == 192 && ip[1] == 168) S++;
}


int main()
{
    //freopen("1.txt", "r", stdin);
    while(cin >> s) {
        s2 = s.substr(s.find('~') + 1, s.size() - s.find('~') - 1);
        s1 = s.substr(0, s.find('~'));
        //cout << s1 << endl;
        //cout << s2 << endl;
        check();
//        for(int i = 0; i <4; i++) {
//            cout << ip[i] << ".";
//        }
//        cout << endl;
//        for(int i = 0; i <4; i++) {
//            cout << ipy[i] << ".";
//        }
//        cout <<endl;
        add();
    }
    cout << A << " " << B << " " << C << " " << D << " " << E << " " << EIP << " " << S << endl;
    return 0;
}