# 20240911

dic = {"A": 0, "B": 0, "C": 0, "D": 0, "E": 0, "ERROR": 0, "PRIVATE": 0}


def check_mask(mask):
    if len(mask) != 4:
        return False
    if "" in mask:
        return False
    if (mask.count("0") == 4) or (mask.count("255") == 4):
        return False
    b4 = ""
    for i in mask:
        t = bin(int(i))[2:].zfill(8)
        b4 += t
    index_0 = b4.index("0")
    if len(b4[:index_0]) != b4[:index_0].count("1"):
        return False
    if len(b4[index_0:]) != b4[index_0:].count("0"):
        return False
    return True


def check_ip(ip):
    if "" in ip:  # ip地址里面不能有空地址
        return False
    if len((ip)) != 4:  # ip地址的长度必须是4
        return False
    for i in ip:
        if int(i) < 0 or int(i) > 255:  # ip地址里面的每一项数字范围必须是1~255
            return False
    return True  #  如果以上3种情况都没有出现,就说明它是一个合法的ip地址


def check_type(ip):
    n = int(ip[0])
    if 1 <= n and n <= 126:
        return "A"
    if 128 <= n and n <= 191:
        return "B"
    if 192 <= n and n <= 223:
        return "C"
    if 224 <= n and n <= 239:
        return "D"
    if 240 <= n and n <= 255:
        return "E"


def check_private(ip):
    n1 = int(ip[0])
    n2 = int(ip[1])
    if n1 == 10:
        return True
    if n1 == 172:
        if 16 <= n2 and n2 <= 31:
            return True
    if n1 == 192 and n2 == 168:
        return True
    return False


while True:
    try:
        ip, mask = input().split("~")
        ip = ip.split(".")
        mask = mask.split(".")
        if ip[0] == "0" or ip[0] == "127":
            continue
        if check_ip(ip) and check_mask(mask):
            if check_private(ip):
                dic["PRIVATE"] += 1
            if check_type(ip):
                dic[check_type(ip)] += 1
        else:
            dic["ERROR"] += 1
    except:
        break
for i in dic.values():
    print(i, end=" ")