#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
int dp[110][310];
vector<int>w[110];
vector<int>p[110];
int main(){
	int a,b,c;
	while(~scanf("%d%d%d",&a,&b,&c)){
		for(int i=0;i<a;i++){
			w[i].clear();p[i].clear();
		}
		for(int i=0;i<a;i++){
			int d;scanf("%d",&d);
			for(int j=0;j<d;j++){
				int x,y;scanf("%d%d",&x,&y);
				w[i].push_back(x);
				p[i].push_back(y);
			}
		}
		for(int i=0;i<=b;i++){
			for(int j=0;j<=c;j++){
				dp[i][j]=-999999999;
			}
		}
		dp[0][0]=0;
		for(int i=0;i<b;i++){
			int t;scanf("%d",&t);
			for(int k=0;k<w[t].size();k++){
				for(int j=c;j>=0;j--){
					
					if(j+p[t][k]<=c){
						dp[i][j+p[t][k]]=max(dp[i][j+p[t][k]],dp[i][j]+w[t][k]);
					}
				}
			}
			for(int j=0;j<=c;j++)dp[i+1][j]=max(dp[i+1][j],dp[i][j]);
		}
		int ret=0;
		int val=0;
		for(int i=0;i<=c;i++){
			if(ret<dp[b][i]){
				val=i;ret=dp[b][i];
			}
		}
		printf("%d %d\n",ret,val);
	}
}