#include <bits/stdc++.h>
using namespace std;
template <class _T>
inline _T sqr(const _T& x) {
  return x * x;
}
template <class _T>
inline string tostr(const _T& a) {
  ostringstream os("");
  os << a;
  return os.str();
}
const long double PI = 3.1415926535897932384626433832795;
const long double EPS = 1e-11;
int n, m, k;
int a[128][128][3];
int b[12800];
int main() {
  cout << setiosflags(ios::fixed) << setprecision(10);
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 0; i < (int)(n); i++) {
    scanf("%*s");
    for (int j = 0; j < (int)(m); j++) {
      for (int l = 0; l < (int)(3); l++) {
        scanf("%d", &a[i][j][l]);
      }
    }
  }
  int ans = 0;
  for (int i = 0; i < (int)(n); i++) {
    for (int j = 0; j < (int)(n); j++) {
      if (i == j) continue;
      int z = 0;
      for (int l = 0; l < (int)(m); l++) {
        for (int r = 0; r < (int)(a[i][l][2]); r++) {
          b[z++] = (a[j][l][1] - a[i][l][0]);
        }
      }
      sort(b, b + z, greater<int>());
      int t = 0;
      for (int l = 0; l < (int)(k); l++) {
        t += (b[l] > 0) ? b[l] : 0;
      }
      if (t > ans) ans = t;
    }
  }
  printf("%d\n", ans);
  return 0;
}
