#include<bits/stdc++.h>
#define N 105
using namespace std;
typedef pair<int,int> P;



int main(){
  
  int s,d,m;
  while(cin>>s>>d>>m){
    
    vector<P> v[N],cost;
    
    for(int i=0;i<s;i++){
    
      int k;
      cin>>k;

      for(int j=0;j<k;j++){
      
	int w,p;
	cin>>w>>p;
      
	v[i].push_back(P(w,p));
      }
    
    }

    for(int i=0;i<d;i++){
    
      int f;
      cin>>f;
    
      for(int j=0;j<v[f].size();j++)
	cost.push_back(v[f][j]);
    
    }

    int dp[5005][305];

    memset(dp,-1,sizeof(dp));
    dp[0][0]=0;
  
    for(int i=0;i<cost.size();i++){

      for(int j=0;j<=m;j++){

	if(dp[i][j]==-1)continue;
      
	dp[i+1][j]=max(dp[i+1][j],dp[i][j]);
      
	if(j+cost[i].second<=m)
	  dp[i+1][j+cost[i].second]=max(dp[i+1][j+cost[i].second],dp[i][j]+cost[i].first);
      
      }
    
    }

    int ans1=0,ans2=0;

    for(int i=m;i>=0;i--){
      
      if(ans1<=dp[cost.size()][i]){
	ans1=dp[cost.size()][i];
	ans2=i;
      }
    }

    cout<<ans1<<' '<<ans2<<endl;
  }
  return 0;
}