#!/usr/bin/env python3
import sys
import math

# Read the input problem
(X,Y,Z) = [int(a) for a in sys.stdin.readline().strip().split(" ")]
nofOrders = int(sys.stdin.readline().strip())
orders = {(0,0,1):0,(0,1,0):0,(1,0,0):0,(0,1,1):0,(1,0,1):0,(1,1,0):0,(1,1,1):0}

for i in range(0,nofOrders):
    data = sys.stdin.readline().strip().split(",")
    thisTuple = [0,0,0]
    for a in data:
        if a=="A":
            thisTuple[0] += 1
        elif a=="B":
            thisTuple[1] += 1
        elif a=="C":
            thisTuple[2] += 1
        else:
            print("'"+a+"'")
            assert False
    orders[tuple(thisTuple)]+= 1
            
# Get the values into the variables
x = orders[(1,0,0)]
y = orders[(0,1,0)]
z = orders[(0,0,1)]
xy = orders[(1,1,0)]
xz = orders[(1,0,1)]
yz = orders[(0,1,1)]
xyz = orders[(1,1,1)]

# Serve single items
totalNofOrders = 0
totalNofOrders += min(X,x)
xt = min(X,x)
X -= min(X,x)
totalNofOrders += min(Y,y)
yt = min(Y,y)
Y -= min(Y,y)
totalNofOrders += min(Z,z)
zt = min(Z,z)
Z -= min(Z,z)

# Two-item orders
b = min(X,min(Y,xy)+min(Z,xz))
xyf = (Y + b - Z) // 2
xyf = max(0,max(b-xz,min([xy,xyf,b])))
xzt = b -  xyf
totalNofOrders += b
X -= xyf
Y -= xyf
X -= (b - xyf)
Z -= (b - xyf)
yzf = min(min(yz,Y),Z)
totalNofOrders += yzf
Y -= yzf
Z -= yzf

# Three-item orders
xyzt = min([X,Y,Z,xyz])
totalNofOrders += min([X,Y,Z,xyz])

# Print result
print(totalNofOrders)
print(xt,yt,zt,xyf,xzt,yzf,xyzt)

