#include<bits/stdc++.h>
using namespace std ;
#define N 200000
#define LL long long
#define inf 21474836470000000
LL suma , sumb , sum , n , siz , ans ;
LL befa[N] , befb[N] ;
struct node{
LL a , b , c ;
}A[N] ;
bool cmp(node L , node R ){
return (L.a - L.b) > (R.a - R.b) ;
}
priority_queue<int> q ;
int main()
{
LL x , y , z ;
scanf("%lld%lld%lld" , &x , &y , &z ) ;
n = x + y + z ;
for(int i = 1 ; i <= n ; i++ ){
LL a , b , c ;
scanf("%lld%lld%lld" , &a , &b , &c ) ;
sum += c ;
A[i].a = a - c ;
A[i].b = b - c ;
}
sort( A + 1 , A + n + 1 , cmp ) ;
for(int i = 1 ; i <= n ; i++ ) befa[i] = befb[i] = (-inf) ;
for(int i = 1 ; i <= n ; i++ ){
q.push( -A[i].a ) ;
suma += A[i].a ;
siz++ ;
if( siz == x ) befa[i] = suma ;
if( siz > x ){
siz-- ;
LL t = q.top() ;
suma += t ;
q.pop() ;
befa[i] = suma ;
}
}
siz = 0 ;
while( !q.empty() ) q.pop() ;
for(int i = n ; i >= 1 ; i-- ){
q.push( -A[i].b ) ;
sumb += A[i].b ;
siz++ ;
if( siz == y ) befb[i] = sumb ;
if( siz > y ){
siz-- ;
LL t = q.top() ;
sumb += t ;
q.pop() ;
befb[i] = sumb ;
}
}
for(int i = x ; i <= n - y ; i++ ) ans = max( ans , befa[i] + befb[i + 1] + sum ) ;
printf("%lld\n" , ans ) ;
return 0 ;
}