#include <bits/stdc++.h>   using namespace std;   const int MXN = 200;   const int MXK = 5;   int bans = -1;   int t[MXN][MXK];   int a[MXK];   int n;   int c[MXK];   int cc[] = {500, 1000, 1500, 2000, 2500, 3000};   int cat(int c, int n) {     if (c * 2 > n) {       return 0;     }     if (c * 4 > n && c * 2 <= n) {       return 1;     }     if (c * 8 > n && c * 4 <= n) {       return 2;     }     if (c * 16 > n && c * 8 <= n) {       return 3;     }     if (c * 32 > n && c * 16 <= n) {       return 4;     }     if (c * 32 <= n) {       return 5;     }   }   int calc(int i) {     int res = 0;     for (int j = (0); j < (MXK); j++) {       if (t[i][j] != -1) res += cc[a[j]] - t[i][j] * cc[a[j]] / 250;     }     return res;   }   bool ok(int c, int n, int tt, int j) {     return cat(c + tt * (t[0][j] != -1), n + tt) <= a[j] &&            cat(c, n + tt) >= a[j];   }   int T;   void dfs(int i) {     if (i == MXK) {       int mn = 0;       for (int j = (0); j < (MXK); j++) {         if (!ok(c[j], n, T, j)) return;       }       if (calc(0) > calc(1)) {         printf( %d , T);         exit(0);       }       return;     }     for (int j = (0); j < (6); j++) {       a[i] = j;       dfs(i + 1);     }   }   int main() {     scanf( %d , &n);     for (int i = (0); i < (n); i++) {       for (int j = (0); j < (5); j++) {         scanf( %d , &t[i][j]);         if (t[i][j] != -1) {           c[j]++;         }       }     }     for (int i = (0); i < (n * 31 + 1); i++) {       T = i;       dfs(0);     }     cout << bans;   }   