#include <bits/stdc++.h>
using namespace std;
const int N = 10005;
struct node {
  int b, s, n;
} item[101][101];
struct node1 {
  int p, n;
  bool operator<(const node1 &T) const { return p > T.p; }
} a[N];
int main() {
  int n, m, k, i, j, ans, id, tot, l;
  while (3 == scanf("%d%d%d", &m, &n, &k)) {
    id = 0;
    for (i = 0; i < m; i++) {
      scanf("%*s");
      for (j = 0; j < n; j++)
        scanf("%d%d%d", &item[i][j].b, &item[i][j].s, &item[i][j].n);
    }
    for (i = ans = 0; i < m; i++)
      for (j = 0; j < m; j++)
        if (i != j) {
          for (l = id = 0; l < n; l++)
            if (item[j][l].s > item[i][l].b && item[i][l].n) {
              a[id].p = item[j][l].s - item[i][l].b;
              a[id++].n = item[i][l].n;
            }
          sort(a, a + id);
          int kk = k;
          for (l = tot = 0; l < id && k; l++)
            if (k >= a[l].n) {
              tot += a[l].n * a[l].p;
              k -= a[l].n;
            } else
              tot += a[l].p * k, k = 0;
          k = kk;
          if (ans < tot) ans = tot;
        }
    printf("%d\n", ans);
  }
  return 0;
}
