#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
struct Student{
string code;
int total;
Student(string s,int t):code(s),total(t){}
};
bool cmp(Student a, Student b){
return a.total>b.total;
}
int main() {
int N,M,G;
vector<Student> list;
vector<Student>::iterator it;
int standard[11];
while(scanf("%d%d%d",&N,&M,&G)!=EOF){
if(N==0){break;}
for(int i=1;i<=M;i++){
scanf("%d",&standard[i]);
}
string s;
int exams;
int count=0;
for(int i=1;i<=N;i++){
int totalScore=0;
cin>>s>>exams;
while(exams--){
int num;
scanf("%d",&num);
totalScore+=standard[num];
}
list.push_back(Student(s,totalScore));
if(totalScore>=G){
count++;
}
}
sort(list.begin(),list.end(), cmp);
printf("%d\n",count);
for(it=list.begin();it!=list.end()&&count;it++){
cout<<it->code<<" "<<it->total<<endl;
count--;
}
}
return 0;
}
// 64 位输出请用 printf("%lld")