#include <bits/stdc++.h>
using namespace std;
long long n,m,c,f1[10001],f2[10001];
int main() {
cin>>n>>m>>c;
for(int i=1,v,w,d; i<=n; i++) {
cin>>v>>w>>d;
if(d>=c/v)
for(int j=v; j<=c; j++)
f1[j]=max(f1[j],f1[j-v]+w);
else {
for(int k=1; k<=d; d-=k,k*=2)
for(int j=c; j>=k*v; j--)f1[j]=max(f1[j],f1[j-k*v]+k*w);
if(d)
for(int j=c; j>=d*v; j--)f1[j]=max(f1[j],f1[j-d*v]+d*w);
}
}
while(m--) {
int ai,bi,ci;
cin>>ai>>bi>>ci;
for(int i=0; i<=c; i++)//分成不同的物品
for(int j=c;j>=i;j--)//01背包
f2[j]=max(f2[j],f2[j-i]+i*i*ai+bi*i+ci);
}
long long ma=0;
for(int i=0;i<=c;i++)ma=max(ma,f1[i]+f2[c-i]);
cout<<ma<<endl;
return 0;
}