2020级计算机专业《面向对象程序设计(C++)》

B. Phone Number

单点时限: 2.0 sec

内存限制: 256 MB

手机面板上有许多功能键与字母数字键。字母数字键上有些既有数字又有字母。在打电话时,你会按键上的数字进行拨号。但是有些人喜欢用一些容易记住的单词或短语记电话号码。例如用 MYFAMILY 表示电话 69326459。一般用手机拨电话号码时,从字母到数字的映射关系如下:

A, B, C 对应 2 D, E, F 对应 3

G, H, I 对应 4 J, K, L 对应 5

M, N, O 对应 6 P, Q, R, S 对应 7

T, U, V 对应 8 W, X, Y, Z 对应 9

10 单独设键。

上海市电话号码是 8 位,为了便于记忆,在第 4,5 位之间有一个连接符 ‘-’,如 6932 - 6459,这样的电话号码表示称为标准格式。例如,3100-GINO 的标准格式是 3100-4466。

现给你一组用字母、数字和连接符 ‘-’ 构成的电话号码,连字符不需要拨号,可以任意添加。请你将这组电话号码转换为标准格式。如果两个电话号码的标准格式相同,则认为它们是同一个电话号码,统计它出现的次数。

输入格式

第一行是一个正整数 $n$,表示电话号码的组数$(0 \lt n \leqslant 100)$。

接下来的 N 行,每行是一个电话号码。每个电话号码由数字、大写字母以及连接符组成。每行不超过 80 个字符。

输出格式

将转换后的标准格式的电话号码按照升序输出,相同的电话号码只输出一次,在电话号码的后面跟一个空格接着输出该电话号码的出现次数。每行末尾有一个换行符。具体格式见输出样例。

样例

Input
6
MYFAMILY
656089-21
656-089-21
VERY-GOOD
-6-5-6-0-8-9-2-1
MY-326459
Output
6560-8921 3
6932-6459 2
8379-4663 1