#include <bits/stdc++.h>
using namespace std;
template <typename T>
T Abs(T first) {
  return (first < 0 ? -first : first);
}
template <typename T>
T Sqr(T first) {
  return (first * first);
}
const int INF = (int)1e9;
const long double EPS = 1e-9;
const long double PI = acos(-1.0);
int main() {
  if (0) freopen("in.txt", "r", stdin);
  int N, M, K, tot;
  int i, j, k, k2;
  static int b[100][100], s[100][100], q[100][100];
  scanf("%d%d%d\n", &N, &M, &K);
  for (i = 0; i < int(N); i++) {
    char tmp[100];
    scanf("%s\n", tmp);
    for (j = 0; j < int(M); j++)
      scanf("%d%d%d\n", &b[i][j], &s[i][j], &q[i][j]);
  }
  tot = 0;
  pair<int, int> tmp[100];
  for (i = 0; i < int(N); i++)
    for (j = 0; j < int(N); j++) {
      int cur = 0;
      for (k = 0; k < int(M); k++)
        tmp[k] = make_pair(s[i][k] - b[j][k], q[j][k]);
      sort(tmp, tmp + M);
      k2 = K, k = M - 1;
      while ((k2) && (k >= 0) && (tmp[k].first > 0)) {
        int num = min(k2, tmp[k].second);
        k2 -= num;
        cur += num * tmp[k].first;
        k--;
      }
      tot = max(tot, cur);
    }
  printf("%d\n", tot);
  return (0);
}
