#include char s[1024 * 1024]; int k = 0; void run(void) { int n,m; char tmp[10]; char name[100][40]; char sex[100]; double grade[100][2]; char used[100] = {0}; double max0 = 0,max1 = 0; int i,j; double female0 = -1; int female1 = -1; double max2 = 0; int max3 = 0; scanf("%d %d",&n,&m); for(i = 0;i < n;++i) { scanf("%s %s",&name[i][0],&tmp[0]); if(*tmp == 'f') sex[i] = 1; else sex[i] = 0; scanf("%lf %lf",&grade[i][0],&grade[i][1]); if(grade[i][0] > max0) max0 = grade[i][0]; if(grade[i][1] > max1) max1 = grade[i][1]; } for(i = 0;i < n;++i) { grade[i][0] = grade[i][0] * 300.0 / max0; grade[i][1] = grade[i][1] * 300.0 / max1; grade[i][0] = grade[i][0] * 0.3 + grade[i][1] * 0.7; if(sex[i] == 1 && grade[i][0] > female0) { female0 = grade[i][0]; female1 = i; } } k += sprintf(s + k,"The member list of Shandong team is as follows:\n"); for(i = 0;i < m;++i) { max2 = -1;max3 = -1; if(i == m - 1 && female1 != -1 && !used[female1]) { k += sprintf(s + k,"%s\n",name[female1]); break; } for(j = 0;j < n;++j) { if(used[j]) continue; if(grade[j][0] < max2) continue; max2 = grade[j][0]; max3 = j; } if(max3 == -1) break; k += sprintf(s + k,"%s\n",name[max3]); ++used[max3]; } } int main(void) { int T,i; scanf("%d",&T); for(i = 0;i < T;++i) run(); printf("%s",s); return 0; }