n,l=map(int,input().split())
a=[]
for i in range(n):
    k=list(input())
    c=0
    if k[0] == '1': # 처음 검은줄로 시작
        c=1
    for j in range(1,l):
        if k[j-1] == '0' and k[j]=='1': # 흰줄에서 검은줄로 바뀔 때 추가
            c+=1
    a.append(c)
print(max(a), a.count(max(a)))
a=[0]*10
p=False
for i in range(10):
    a[i]=list(input().split())
for i in range(10): # 줄 확인
    r_c=a[i][0]
    c=0
    for j in range(10):
        if a[i][j]== r_c:
            c+=1
    if c==10:
        p=True
for j in range(10): # 열 확인
    c_c=a[0][j]
    c=0
    for i in range(10):
        if a[i][j]==c_c:
            c+=1
    if c== 10:
        p=True
if p:
    print(1)
else:
    print(0)
alpha=list('abcdefghijklmnopqrstuvwxyz') # 알파벳 리스트 만들때 '' 사용
word=list(input())
answer=[0]*26
for i in range(len(word)):
    for j in range(26):
        if word[i]== alpha[j]:
            answer[j]+=1
print(*answer)