#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<sstream>
using namespace std;
void split(string& str, vector<string>& strs)
{
stringstream ss(str);
string temp;
while(getline(ss, temp, '.'))
{
strs.push_back(temp);
}
}
bool checkNum(string& str)
{
if(str.size() == 0 || str.size() > 3)
{
return false;
}
for(int i = 0; i < str.size(); i++)
{
if(str[i] < '0' || str[i] > '9')
{
return false;
}
}
int num = stoi(str);
if(num >= 0 && num <= 255)
{
return true;
}
return false;
}
bool checkIP(vector<string> segs)
{
if(segs.size() != 4)
{
return false;
}
for(int i = 0; i < segs.size(); i++)
{
if(!checkNum(segs[i]))
{
return false;
}
}
return true;
}
bool checkMask(vector<string> segs)
{
if(segs.size() != 4)
{
return false;
}
bool start = false;
for(int i = 0; i < segs.size(); i++)
{
if(!checkNum(segs[i]))
{
return false;
}
int num = stoi(segs[i]);
if(start)
{
if(num != 0)
{
return false;
}
}
else
{
if(num != 255)
{
if(num == 0 || num == 128 || num == 192 || num == 224 || num == 240 || num == 248 || num == 252 || num == 254)
{
start = true;
}
else
{
return false;
}
}
}
}
if(stoi(segs[3]) == 255)
{
return false;
}
if(segs[0] == "0" && segs[1] == "0" && segs[2] == "0" && segs[3] == "0")
{
return false;
}
return true;
}
void classify(vector<string>& ip, vector<int>& counter)
{
int n1 = stoi(ip[0]);
int n2 = stoi(ip[1]);
if(n1 >= 1 && n1 <= 126)
{
counter[0]++;
if(n1 == 10)
{
counter[6]++;
}
}
else if(n1 >= 128 && n1 <= 191)
{
counter[1]++;
if(n1 == 172 && n2 >= 16 && n2 <= 31)
{
counter[6]++;
}
}
else if(n1 >= 192 && n1 <= 223)
{
counter[2]++;
if(n1 == 192 && n2 == 168)
{
counter[6]++;
}
}
else if(n1 >= 224 && n1 <= 239)
{
counter[3]++;
}
else if(n1 >= 240 && n1 <= 255)
{
counter[4]++;
}
}
int main()
{
string str;
vector<int> counter(7, 0);
while(cin >> str)
{
if(str == "aaa")
{
break;
}
int pos = str.find('~');
string ip = str.substr(0, pos);
string mask = str.substr(pos + 1, str.size() - pos - 1);
vector<string> ip_segs;
vector<string> mask_segs;
split(ip, ip_segs);
split(mask, mask_segs);
if(!checkIP(ip_segs) || !checkMask(mask_segs))
{
counter[5]++;
}
else
{
classify(ip_segs, counter);
}
}
for(int i = 0; i <= 6; i++)
{
cout << counter[i] << " ";
}
cout << endl;
return 0;
}