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