#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

struct stu{
	string idx;
	int anum;
	vector<int> num;
	int ssum = 0;
};
bool cmp(stu s1, stu s2) {
	return s1.ssum > s2.ssum;
}
int main() {
	int n, m, g;
	cin >> n >> m >> g;
	vector<int> mm(m);
	for (int i = 0; i < m; i++) {
		cin >> mm[i];
	}
	vector<stu> st(n);
	for (int i = 0; i < n; i++) {
		cin >> st[i].idx;
		cin >> st[i].anum;
		for (int j = 0; j < st[i].anum; j++) {
			int temp;
			cin >> temp;
			st[i].num.push_back(temp);
		}
	}
	int count = 0;
	for (int i = 0; i < n; i++) {
		int sum = 0;
		for (int j = 0; j < st[i].num.size(); j++) {
			sum += mm[st[i].num[j]-1];
		}
		if (sum >= g) {
			st[i].ssum = sum;
			count++;
		}
	}
	sort(st.begin(), st.end(), cmp);
	cout << count << endl;
	for (int i = 0; i < st.size(); i++) {
		if (st[i].ssum != 0) {
			cout << st[i].idx << " " << st[i].ssum << endl;
		}
	}
}