#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct student
{
string ID;
int score;
};
bool greater_(const student &a, const student &b)
{
return a.score > b.score;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N, M, G;
while(cin >> N)
{
if(N == 0) break;
cin >> M >> G;
vector<int> question(M + 1, 0);
for(int i = 1; i <= M; i++) cin >> question[i];
vector<student> vec(N);
int already = 0;
for(int i = 0; i < N; i++)
{
cin >> vec[i].ID;
int n;
cin >> n;
int x, sum = 0;
for(int j = 0; j < n; j++)
{
cin >> x;
sum += question[x];
}
vec[i].score = sum;
if(sum >= G) already++;
}
if(already == 0) cout << already << "\n";
else
{
sort(vec.begin(), vec.end(), greater_);
cout << already << "\n";
for(int i = 0; i < already; i++)
{
cout << vec[i].ID << " " << vec[i].score << "\n";
}
}
}
return 0;
}