#include<bits/stdc++.h>
using namespace std;
int n,m,C;
int x,y,d;
int v[100005],w[100005],cnt;
struct Jafferson{
int a,b,c;
}Bag[100005];
int dp[100005];
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL),cout.tie(NULL);
cin >> n >> m >> C;
for(int i=1;i<=n;i++){
cin >> x >> y >> d;
for(int j=1;j<=d;j*=2){
v[++cnt]=j*x,w[cnt]=j*y;
d-=j;
}
if(d) v[++cnt]=d*x,w[cnt]=d*y;
}
for(int i=1;i<=cnt;i++){
for(int j=C;j>v[i];j--){
dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
}
}
for(int i=1;i<=m;i++){
cin >> Bag[i].a >> Bag[i].b >> Bag[i].c;
}
for(int i=1;i<=m;i++){
for(int j=C;j>=0;j--){
for(int k=0;k<=j;k++){
dp[j]=max(dp[j],dp[j-k]+(Bag[i].a*k+Bag[i].b)*k+Bag[i].c);
}
}
}
cout << dp[C] << endl;
return 0;
}