#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
const int MAXN = 10 + 10;
const int MAXM = 1000 + 10;
int arr[MAXN];//题目
struct Student {
string id;
int score;
};
Student student[MAXM];
bool Compare (Student x, Student y){
if (x.score != y.score){
return x.score > y.score;
}else{
return x.id < y.id;
}
return false;
}
int main(){
int n, m, g;
while(cin >> n){
if (n == 0){
break;
}
cin >> m >> g;
for (int i = 1; i <= m; i++){
cin >> arr[i];
}
for (int i = 0; i < n; i++){
int tihao, finishNum;
int sum = 0;
cin >> student[i].id >> finishNum;
for (int j = 1; j <= finishNum; j++){
cin >> tihao;
sum += arr[tihao];
}
student[i].score = sum;
}
sort(student, student + n, Compare);
int k = 0;
for (int i = 0; i < n; i++){
if (student[i].score >= g){
k++;
}else{
break;
}
}
cout << k << endl;
for (int i = 0; i < k; i++){
cout << student[i].id << " " << student[i].score << endl;
}
}
return 0;
}