#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; }