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