#include <bits/stdc++.h>
using namespace std;
#define faster ios_base::sync_with_stdio(false); cin.tie(NULL)

const int N = 1e5 + 7;
const long long INF = 1e16;

int X , Y , Z , n;
long long A[N] , B[N];

struct gv{
    long long a , b , c , d;
} a[N];

bool cmp(gv x , gv y){
    return x.d > y.d;
}

void inp(){
    cin >> X >> Y >> Z;
    n = X + Y + Z;
}

void solve(){
    long long Sum = 0;
    for(int i = 1 ; i <= n ; i++){
        cin >> a[i].a >> a[i].b >> a[i].c;
        a[i].d = a[i].a - a[i].b;
        Sum += a[i].c;
    }

    sort(a + 1 , a + n + 1 , cmp);

    priority_queue<long long , vector<long long> , greater<long long>> pq;
    long long cur = 0;

    for(int i = 1 ; i <= n ; i++){
        long long val = a[i].a - a[i].c;
        pq.push(val);
        cur += val;

        if((int)pq.size() > X){
            cur -= pq.top();
            pq.pop();
        }

        if(i >= X) A[i] = cur;
    }

    while(!pq.empty()) pq.pop();
    cur = 0;

    for(int i = n ; i >= 1 ; i--){
        long long val = a[i].b - a[i].c;
        pq.push(val);
        cur += val;

        if((int)pq.size() > Y){
            cur -= pq.top();
            pq.pop();
        }

        if(n - i + 1 >= Y) B[i] = cur;
    }

    long long ans = -INF;

    for(int i = X ; i <= n - Y ; i++)
        ans = max(ans , A[i] + B[i + 1]);

    cout << Sum + ans;
}

int main(){
    faster;
    inp();
    solve();
    return 0;
}
