#include <bits/stdc++.h>
using namespace std;
struct arc{
string num;
int grade;
};
bool cmp(arc a,arc b)
{
if(a.grade==b.grade) return stoi(a.num.substr(2))<stoi(b.num.substr(2));
else return a.grade>b.grade;
}
int main(){
int n;
while(cin>>n)
{
if(n==0) break;
arc stu[n];
int m,G,cnt=0;
cin>>m>>G;
int g[m+1];
for(int i=1;i<=m;i++) cin>>g[i];
for(int i=0;i<n;i++)
{
stu[i].grade=0;
cin>>stu[i].num;
int q,index;
cin>>q;
for(int j=0;j<q;j++)
{
cin>>index;
stu[i].grade+=g[index];
}
if(stu[i].grade>=G) cnt++;
}
cout<<cnt<<endl;
sort(stu,stu+n,cmp);
for(int i=0;i<cnt;i++)
{
cout<<stu[i].num<<" "<<stu[i].grade<<endl;
}
}
return 0;
}