tests=int(input())
counter=1
LetterList=[]
SenList=[]
while counter<=tests:
Sentence=input()
SenList.append(Sentence)
counter+=1
counter=1
text=''
for S in range(len(SenList)):
text+=SenList[S]
wordList=text.split()
for i in range(len(wordList)):
word=wordList[i]
splitted=[]
for let in word:
splitted.append(let)
for letter in splitted:
if letter not in LetterList:
LetterList.append(letter)
LetterList.append(1)
else:
for j in range(len(LetterList)-1):
if letter==LetterList[j]:
indeks=j
howMany=LetterList[j+1]
howMany+=1
LetterList[j+1]=howMany
alphabet='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
times=0
for lett in alphabet:
for which in range(len(LetterList)-1):
if lett==LetterList[which]:
index=which
number=which+1
print(str(LetterList[index])+' '+(str(LetterList[number])))
dGVzdHM9aW50KGlucHV0KCkpCmNvdW50ZXI9MQpMZXR0ZXJMaXN0PVtdClNlbkxpc3Q9W10Kd2hpbGUgY291bnRlcjw9dGVzdHM6CiAgICBTZW50ZW5jZT1pbnB1dCgpCiAgICAKICAgIFNlbkxpc3QuYXBwZW5kKFNlbnRlbmNlKQogICAgY291bnRlcis9MQpjb3VudGVyPTEKCnRleHQ9JycKZm9yIFMgaW4gcmFuZ2UobGVuKFNlbkxpc3QpKToKICAgIHRleHQrPVNlbkxpc3RbU10gICAgICAgICAKd29yZExpc3Q9dGV4dC5zcGxpdCgpCmZvciBpIGluIHJhbmdlKGxlbih3b3JkTGlzdCkpOgogICAgd29yZD13b3JkTGlzdFtpXQogICAgc3BsaXR0ZWQ9W10KICAgIGZvciBsZXQgaW4gd29yZDoKICAgICAgICBzcGxpdHRlZC5hcHBlbmQobGV0KQogICAgCiAgICBmb3IgbGV0dGVyIGluIHNwbGl0dGVkOgogICAgICAgIGlmIGxldHRlciBub3QgaW4gTGV0dGVyTGlzdDoKICAgICAgICAgICAgTGV0dGVyTGlzdC5hcHBlbmQobGV0dGVyKQogICAgICAgICAgICBMZXR0ZXJMaXN0LmFwcGVuZCgxKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGZvciBqIGluIHJhbmdlKGxlbihMZXR0ZXJMaXN0KS0xKToKICAgICAgICAgICAgICAgIGlmIGxldHRlcj09TGV0dGVyTGlzdFtqXToKICAgICAgICAgICAgICAgICAgICBpbmRla3M9agogICAgICAgICAgICAgICAgICAgIGhvd01hbnk9TGV0dGVyTGlzdFtqKzFdCiAgICAgICAgICAgICAgICAgICAgaG93TWFueSs9MQogICAgICAgICAgICAgICAgICAgIExldHRlckxpc3RbaisxXT1ob3dNYW55CgphbHBoYWJldD0nYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKdGltZXM9MApmb3IgbGV0dCBpbiBhbHBoYWJldDogICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICBmb3Igd2hpY2ggaW4gcmFuZ2UobGVuKExldHRlckxpc3QpLTEpOgogICAgICAgICAgICAgICAgaWYgbGV0dD09TGV0dGVyTGlzdFt3aGljaF06CiAgICAgICAgICAgICAgICAgICAgaW5kZXg9d2hpY2gKICAgICAgICAgICAgICAgICAgICBudW1iZXI9d2hpY2grMQogICAgICAgICAgICAgICAgICAgIHByaW50KHN0cihMZXR0ZXJMaXN0W2luZGV4XSkrJyAnKyhzdHIoTGV0dGVyTGlzdFtudW1iZXJdKSkpCgogICAgCiAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICA=