#include <stdio.h>
#include <math.h>
#include <string.h>
#include <algorithm>
#define LL long long
#define GG int
#define For(i, j, k) for(int i=j; i<=k; i++)
#define Dow(i, j, k) for(int i=j; i>=k; i--)
using namespace std;
const int N = 10011;
struct node{
char id[21];
int fe;
}stu[N];
int cmp(const node &a,const node &b) {
if(a.fe==b.fe) {
if(strcmp(a.id,b.id)<0)
return 1;
else
return 0;
}
else return a.fe>b.fe;
}
int main() {
int n,m,num,i,cnt,g,indx;
int fes[N];
while(scanf("%d",&n)&&n) {
cnt=0;
For(i, 1, n)
stu[i].fe=0;
scanf("%d %d",&m,&g);
For(i, 1, m)
scanf("%d",&fes[i]);
For(i, 1, n){
scanf("%s %d",stu[i].id,&num);
while(num--) {
scanf("%d",&indx);
stu[i].fe+=fes[indx];
}
if(stu[i].fe>=g) cnt++;
}
sort(stu+1,stu+n+1,cmp);
printf("%d\n",cnt);
For(i, 1, n) {
if(stu[i].fe>=g)
printf("%s %d\n",stu[i].id,stu[i].fe);
else
break;
}
}
return 0;
}