#include <bits/stdc++.h>
using namespace std;
int a[110][110];
int b[110][110];
int c[110][110];
struct E {
  int b, s, c;
  int p;
} e[1000];
bool cmp(E A, E B) { return A.p > B.p; }
int main() {
  int n, m, k;
  char s[20];
  scanf("%d", &n);
  ;
  scanf("%d", &m);
  ;
  scanf("%d", &k);
  ;
  for (int i = 0; i < n; i++) {
    scanf("%s", &s);
    ;
    for (int j = 0; j < m; j++) {
      scanf("%d", &a[i][j]);
      ;
      scanf("%d", &b[i][j]);
      ;
      scanf("%d", &c[i][j]);
      ;
    }
  }
  long long r = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++)
      if (j != i) {
        for (int x = 0; x < m; x++) {
          e[x].b = a[i][x];
          e[x].c = c[i][x];
          e[x].s = b[j][x];
          e[x].p = e[x].s - e[x].b;
        }
        sort(e, e + m, cmp);
        int num = 0;
        long long t = 0;
        for (int x = 0; x < m; x++) {
          if (num + e[x].c <= k) {
            num += e[x].c;
            if (e[x].p > 0) t += e[x].c * e[x].p;
          } else {
            if (e[x].p > 0) t += (k - num) * e[x].p;
            break;
          }
        }
        r = max(r, t);
      }
  }
  cout << r;
  return 0;
}
