#include<bits/stdc++.h>
using namespace std;
int n,nn;
int bian[10001];
int t=1;
int a1,b;
int xu[6];
int f[6][6][6][6][6];
struct node{
int n;
int s[6];
int pay;
}a[1001];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].n;
for(int j=1;j<=a[i].n;j++){
cin>>a1>>b;
if(bian[a1]==0){
bian[a1]=t;
t++;
}
a[i].s[bian[a1]]=b;
}
cin>>a[i].pay;
}
cin>>nn;
for(int i=1;i<=nn;i++){
cin>>a1>>b;
if(bian[a1]==0){
bian[a1]=t;
t++;
}
xu[bian[a1]]=b;
a[n+i].n=1;
a[n+i].s[bian[a1]]=1;
cin>>a[n+i].pay;
}
for(int i=0;i<=5;i++){
for(int j=0;j<=5;j++){
for(int k=0;k<=5;k++){
for(int l=0;l<=5;l++){
for(int v=0;v<=5;v++){
f[i][j][k][l][v]=233333;
}
}
}
}
}
n+=nn;
f[0][0][0][0][0]=0;
for(int i=1;i<=n;i++)
for(int j=a[i].s[1];j<=xu[1];j++)
for(int k=a[i].s[2];k=xu[2];k++)
for(int l=a[i].s[3];l<=xu[3];l++)
for(int v=a[i].s[4];v<=xu[4];v++)
for(int q=a[i].s[5];q<=xu[5];q++)
f[j][k][l][v][q]=min(f[j][k][l][v][q],f[j-a[i].s[1]][k-a[i].s[2]][l-a[i].s[3]][v-a[i].s[4]][q-a[i].s[5]]+a[i].pay);
cout<<f[xu[1]][xu[2]][xu[3]][xu[4]][xu[5]];
}