#include <stdio.h> #include <string.h> struct Stu { char name[21]; int grade; }stu[1000]; void sort(struct Stu stu[],int N){ int max; for(int i=0;i<N-1;i++){ max=i; for(int j=i+1;j<N;j++){ if(stu[max].grade<stu[j].grade)max=j; if(stu[max].grade==stu[j].grade) if(strcmp(stu[max].name,stu[j].name)>0) max=j; } struct Stu temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } int main(){ int N,M,G,score[11],m,g,sum; while(scanf("%d%d%d",&N,&M,&G)!=EOF){ sum=0;if(N==0)break; for(int i=1;i<=M;i++) scanf("%d",&score[i]); for(int i=0;i<N;i++){ scanf("%s",stu[i].name); scanf("%d",&m);stu[i].grade=0; for(int j=0;j<m;j++){ scanf("%d",&g); stu[i].grade+=score[g]; } if(stu[i].grade>=G)sum++; } sort(stu,N);printf("%d\n",sum); for(int i=0;i<N;i++){ if(stu[i].grade>=G) printf("%s %d\n",stu[i].name,stu[i].grade); } } return 0; }