http://acm.hdu.edu.cn/showproblem.php?pid=4287
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
using namespace std;
int alp[29]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9};
int dic[12222222];
int num[5555];
int main()
{
int t;
scanf("%d",&t);
int i;
for(int l=0;l<t;l++)
{
memset(dic,-1,sizeof(0));
memset(num,0,sizeof(num));
int n,m;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
dic[num[i]]=0;
}
char str[10];
for(i=0;i<m;i++)
{
scanf("%s",str);
int ll=strlen(str);
int s=0;
for(int k=0;k<ll;k++)
s=s*10+alp[str[k]-'a'];
if(dic[s]!=-1)
dic[s]++;
}
for(i=0;i<n;i++)
{
printf("%d\n",dic[num[i]]);
}
}
}