#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#define maxn 1010

using namespace std;

typedef struct Stu{
    string no;
 //   int num;
    int sco;
}S;
S stu[maxn];
bool cmp(S s1,S s2)
{
    if(s1.sco!=s2.sco)return s1.sco>s2.sco;
    return s1.no<s2.no;
}
int main() {
    int N,M,G;
    while(cin>>N)
    {
        if(N==0)break;
        cin>>M>>G;
        int sc[15],cnt=0;
        for(int i=1;i<=M;i++)cin>>sc[i];
        for(int i=0;i<N;i++)
        {

            int num,sco=0;
            cin>>stu[i].no>>num;
            for(int i=1;i<=num;i++)
            {
                int n;
                cin>>n;
                sco += sc[n];
            }
            if(sco>=G)cnt++;
            stu[i].sco = sco;
        }
        sort(stu,stu+N,cmp);
        cout<<cnt<<endl;
        for(int i=0;i<cnt;i++)
        {
            cout<<stu[i].no<<" "<<stu[i].sco<<endl;
        }
    }
}
// 64 位输出请用 printf("%lld")