#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
struct Stu{
int team;
int s;
double scoree;
}stu[1001];
struct Team{
double ave;
}team[119];
bool cmp(Stu a,Stu b){
if(a.scoree!=b.scoree) return a.scoree > b.scoree;
return a.team < b.team;
}
int main(){
int n,k;
char t;
double score[27][27];
scanf("%d %d",&n,&k);
for(int i=0;i<n;i++){
scanf("%d %c",&stu[i].s,&t);
stu[i].team = int(t);
}
for(int j=0;j<k;j++){
for(int m=0;m<k;m++){
scanf("%lf",&score[j][m]);
}
}
for(int i=0;i<k;i++){
int sum = 0;
for(int j=0;j<k;j++){
sum += score[j][i];
}
team[i+65].ave = 1.0*sum / k;
}
for(int i=0;i<k;i++){
int x=0;
int sum =0;
for(int j=0;j<k;j++){
if(score[j][i]>=team[i+65].ave-15 && score[j][i]<=team[i+65].ave+15){
sum += score[j][i];
x++;
}
team[i+65].ave = round(1.0*sum / x);
}
}
for(int i=0;i<n;i++){
stu[i].scoree = round(0.6*stu[i].s+0.4*team[stu[i].team].ave);
}
sort(stu,stu+n+1,cmp);
for(int i=0;i<n;i++){
char cc = char(stu[i].team);
printf("%.0lf %c\n",stu[i].scoree,cc);
}
}