#include<cmath>
#include<cstdio>
#include<algorithm>
int i,j,n,k,f[27][27],r[27],sum,k1;
struct node
{
int s;
char c;
}a[1001];
bool cmp(node x,node y)
{
if(x.s==y.s)
return x.c<y.c;
return x.s>y.s;
}
main()
{
scanf("%d %d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d %c",&a[i].s,&a[i].c);
for(i=1;i<=k;i++)
for(j=1;j<=k;j++)
scanf("%d",&f[i][j]);
for(i=1;i<=k;i++)
{
sum=0,k1=k;
for(j=1;j<=k;j++)
sum+=f[j][i];
sum=round(sum/k);
for(j=1;j<=k;j++)
if(abs(sum-f[j][i])<=15)
r[i]+=f[j][i];
else
k1--;
r[i]=round(r[i]/k1);
}
for(i=1;i<=n;i++)
a[i].s=round(0.6*a[i].s)+round(r[a[i].c-'A'+1]*0.4);
std::sort(a+1,a+1+n,cmp);
for(i=1;i<=n;i++)
printf("%d %c\n",a[i].s,a[i].c);
}