#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
struct student {
int s;
char num[25];
} n[1005];
bool cmp(student x,student y) {
if(x.s !=y.s ) return x.s >y.s ;
else return strcmp(x.num ,y.num )>0? 0:1;
}
int main() {
int N,M,G;
int i,j,k,w;
int m[11],g[11];
while(scanf("%d",&N)&&N) {
w=0;
scanf("%d%d",&M,&G);
for(i=1; i<=M; i++) {
scanf("%d",&g[i]);
}
for(i=1; i<=N; i++) {
n[i].s =0;
scanf("%s",&n[i].num );
scanf("%d",&k);
for(j=1; j<=k; j++) {
scanf("%d",&m[j]);
n[i].s +=g[m[j]];
}
if(n[i].s >=G) {
w++;
}
}
//printf("\n");
/*for(i=1; i<=N; i++) {
printf("%s %d\n",n[i].num ,n[i].s );
}*/
sort(n+1,n+N+1,cmp);
printf("%d\n",w);
for(i=1; i<=w; i++) {
printf("%s %d\n",n[i].num ,n[i].s );
}
}
return 0;
}