#include<bits/stdc++.h>
using namespace std;
const int maxn=100010;
struct node
{
	int x;
	int a;
	int b;
}edge[maxn];
bool cmp(node a,node b)
{
	return a.x<b.x;
}
int x,y,z,a,b,c,n;
multiset<int>G;
long long sum,f[maxn],p[maxn],ans;
int main()
{
	cin>>x>>y>>z;
	n=x+y+z;
	for(int i=1;i<=n;i++)
	{
		cin>>a>>b>>c;
		ans+=c;
		a-=c,b-=c;
		edge[i].x=a-b;
		edge[i].a=a,edge[i].b=b;
	}
	sort(edge+1,edge+1+n,cmp);
	for(int i=1;i<=n;i++)
	{
		sum+=edge[i].b;
		G.insert(edge[i].b);
		if(G.size()>y)
		{
			sum-=*G.begin();
			G.erase(G.begin());
		}
		f[i]=sum;
	}
	G.clear(),sum=0;
	for(int i=n;i;i--)
	{
		sum+=edge[i].a;
		G.insert(edge[i].a);
		if(G.size()>x)
		{
			sum-=*G.begin();
			G.erase(G.begin());
		}
		p[i]=sum;
	}
	long long tmp=ans;
	ans=0;
	for(int i=y;i+x<=n;i++)
	{
		ans=max(ans,tmp+f[i]+p[i+1]);
	}
	cout<<ans<<endl;
	return 0;
}