#include <iostream>
#include "vector"
#include "queue"
using namespace std;
struct student {
string num;
int score;
student(string s, int i) {
num = s;
score = i;
}
bool operator< (student B)const {
if (score == B.score) return num > B.num;
return score < B.score;
}
};
int main() {
int N, M, G;
while (cin >> N >> M >> G) { // 注意 while 处理多个 case
// cout << a + b << endl;
if (N == 0) break;
priority_queue<student> myQueue;
vector<int> score;
score.push_back(0);
while (M--) {
int temp;
cin >> temp;
score.push_back(temp);
}
while (N--) {
string num;
cin >> num;
int finishNum;
cin >> finishNum;
int sscore = 0;
while (finishNum--) {
int qn;
cin >> qn;
sscore += score[qn];
}
if (sscore >= G) myQueue.push(student(num, sscore));
}
if (myQueue.size() == 0) cout << 0 << endl;
else {
cout << myQueue.size() << endl;
while (!myQueue.empty()) {
cout << myQueue.top().num << ' ' << myQueue.top().score << endl;
myQueue.pop();
}
}
}
}
// 64 位输出请用 printf("%lld")