import sys
def take_state(m, i, j, c):
m[i][j] = '0'
for k in xrange(2):
for l in xrange(2):
if k == l:
continue
if m[i+k][j+l] == c:
take_state(m, i+k, j+l, c)
if m[i-k][j-l] == c:
take_state(m, i-k, j-l, c)
t = int(sys.stdin.readline())
for c in xrange(t):
n, m = map(int, sys.stdin.readline().split())
mtx = [[] for x in range(n+2)]
mtx[0] = ['0']*(m+2)
mtx[n+1] = ['0']*(m+2)
for i in xrange(1,n+1):
mtx[i] = ['0']
mtx[i] += list(sys.stdin.readline().strip('\n'))
mtx[i] += ['0']
Dict = {}
for i in xrange(1,n+1):
for j in xrange(1,m+1):
if mtx[i][j] != '0':
if mtx[i][j] not in Dict:
Dict[mtx[i][j]] = 0
Dict[mtx[i][j]] += 1
take_state(mtx, i, j, mtx[i][j])
tuples = []
for x in Dict:
tuples.append((x, Dict[x]))
ans = sorted(tuples, key=lambda x:(x[1]*-1,x[0]))
print 'Case #%d:' % (c+1)
for x in ans:
print '%s: %d' % (x[0], x[1])
aW1wb3J0IHN5cwpkZWYgdGFrZV9zdGF0ZShtLCBpLCBqLCBjKToKCW1baV1bal0gPSAnMCcKCWZvciBrIGluIHhyYW5nZSgyKToKCQlmb3IgbCBpbiB4cmFuZ2UoMik6CgkJCWlmIGsgPT0gbDoKCQkJCWNvbnRpbnVlCgkJCWlmIG1baStrXVtqK2xdID09IGM6CgkJCQl0YWtlX3N0YXRlKG0sIGkraywgaitsLCBjKQoJCQlpZiBtW2kta11bai1sXSA9PSBjOgoJCQkJdGFrZV9zdGF0ZShtLCBpLWssIGotbCwgYykKCQkJCQp0ID0gaW50KHN5cy5zdGRpbi5yZWFkbGluZSgpKQoKZm9yIGMgaW4geHJhbmdlKHQpOgoJbiwgbSA9IG1hcChpbnQsIHN5cy5zdGRpbi5yZWFkbGluZSgpLnNwbGl0KCkpCgltdHggPSBbW10gZm9yIHggaW4gcmFuZ2UobisyKV0gCgltdHhbMF0gPSBbJzAnXSoobSsyKQoJbXR4W24rMV0gPSBbJzAnXSoobSsyKQoJZm9yIGkgaW4geHJhbmdlKDEsbisxKToKCQltdHhbaV0gPSBbJzAnXQoJCW10eFtpXSArPSBsaXN0KHN5cy5zdGRpbi5yZWFkbGluZSgpLnN0cmlwKCdcbicpKQoJCW10eFtpXSArPSBbJzAnXQoKCURpY3QgPSB7fQoJZm9yIGkgaW4geHJhbmdlKDEsbisxKToKCQlmb3IgaiBpbiB4cmFuZ2UoMSxtKzEpOgoJCQlpZiBtdHhbaV1bal0gIT0gJzAnOgoJCQkJaWYgbXR4W2ldW2pdIG5vdCBpbiBEaWN0OgoJCQkJCURpY3RbbXR4W2ldW2pdXSA9IDAKCQkJCURpY3RbbXR4W2ldW2pdXSArPSAxCgkJCQl0YWtlX3N0YXRlKG10eCwgaSwgaiwgbXR4W2ldW2pdKQoJCQkJCgl0dXBsZXMgPSBbXQoJZm9yIHggaW4gRGljdDoKCQl0dXBsZXMuYXBwZW5kKCh4LCBEaWN0W3hdKSkKCWFucyA9IHNvcnRlZCh0dXBsZXMsIGtleT1sYW1iZGEgeDooeFsxXSotMSx4WzBdKSkKCXByaW50ICdDYXNlICMlZDonICUgKGMrMSkKCWZvciB4IGluIGFuczoKCQlwcmludCAnJXM6ICVkJyAlICh4WzBdLCB4WzFdKQoJCgkJCQk=
MTAKOSA1CmFhYmJhCmNkY2JjCmRhYmRjCmFiZGNjCmFkYmRjCmJiYWNkCmNjYmRkCmRhYmFhCmFiZGFkCjYgMQpjCmQKYQpiCmQKZAo2IDQKYWRkZAphYmFkCmFjYmMKYWNiYQpkYmNjCmJhYmIKNyA3CmFiYmFjY2EKZGRhY2NjYgpiY2NhY2RjCmRkYmRjZGIKYmFjYWJiZApkYWRjYWFiCmJkYWFiYmQKNiAxCmQKZApiCmIKYQpkCjMgNwpkZGRjYmNjCmNhZGNiY2EKZGFkYWJhZAo4IDkKZGRkY2RhZGFjCmRhYWJkZGFjYwpjYmJjZGJkYWQKY2FiYmJiYmFiCmJkY2RkY2RiYgpiZGFhYmFhZGMKYWRkY2RhZGRjCmJjYmRjZGNkYwo1IDEwCmJkZGFhY2FjYWIKYmFhYmRhYmNkZApkZGFjZGFjZGFjCmFjYWNjYmFjYWMKYmJkZGFhYmJkYwoxMCA1CmNjZGRhCmNhYmRkCmNjYWFkCmNkY2NhCmRiZGRjCmRhY2JkCmJhYmJkCmNiYmRjCmRhZGNkCmFiYWFhCjYgOQphYWFkYWJhY2EKZGJjYmJhZGFhCmNhYmFjY2NjZApiZGFhYWFiZGQKY2JkYmFjYmJiCmRkZGFhY2NjZA==
10
9 5
aabba
cdcbc
dabdc
abdcc
adbdc
bbacd
ccbdd
dabaa
abdad
6 1
c
d
a
b
d
d
6 4
addd
abad
acbc
acba
dbcc
babb
7 7
abbacca
ddacccb
bccacdc
ddbdcdb
bacabbd
dadcaab
bdaabbd
6 1
d
d
b
b
a
d
3 7
dddcbcc
cadcbca
dadabad
8 9
dddcdadac
daabddacc
cbbcdbdad
cabbbbbab
bdcddcdbb
bdaabaadc
addcdaddc
bcbdcdcdc
5 10
bddaacacab
baabdabcdd
ddacdacdac
acaccbacac
bbddaabbdc
10 5
ccdda
cabdd
ccaad
cdcca
dbddc
dacbd
babbd
cbbdc
dadcd
abaaa
6 9
aaadabaca
dbcbbadaa
cabaccccd
bdaaaabdd
cbdbacbbb
dddaacccd