#include<bits/stdc++.h>
using namespace std;
#define MAX 1010
struct student
{
char n[25];
int g=0;
int gs;
};
int cmp(student x,student y)
{
if(x.g==y.g)
{
return strcmp(x.n,y.n)<0;
}
return x.g>y.g;
}
int main(void)
{
int N,M,G,ms[15];
int i,j;
int x,cnt;
student s[MAX];
while(scanf("%d",&N),N)
{
scanf("%d %d",&M,&G);
for(i=1;i<=M;i++)
{
scanf("%d",&ms[i]);
}
cnt=0;
for(i=1;i<=N;i++)
{
scanf("%s %d",s[i].n,&s[i].gs);
s[i].g=0;
for(j=1;j<=s[i].gs;j++)
{
scanf("%d",&x);
s[i].g+=ms[x];
}
if(s[i].g>=G)
{
cnt++;
}
}
sort(s+1,s+N+1,cmp);
printf("%d\n",cnt);
for(j=1;j<=N&&s[j].g>=G;j++)
{
printf("%s %d\n",s[j].n,s[j].g);
}
}
return 0;
}