#include <bits/stdc++.h>   using namespace std;   int d[] = {25, 18, 15, 12, 10, 8, 6, 4, 2, 1};   int t, n, k;   struct edge {     string name;     int s, win[50];   } a[100];   bool cmp1(edge x, edge y) {     if (x.s != y.s) {       return x.s > y.s;     }     for (int i = 0; i < 50; i++) {       if (x.win[i] != y.win[i]) {         return x.win[i] > y.win[i];       }     }     return false;   }   bool cmp2(edge x, edge y) {     if (x.win[0] != y.win[0]) {       return x.win[0] > y.win[0];     } else {       return cmp1(x, y);     }   }   int main() {     cin >> t;     while (t--) {       cin >> n;       string name;       for (int i = 0; i < n; i++) {         cin >> name;         bool flag = false;         for (int j = 0; j < k; j++) {           if (a[j].name == name) {             if (i < 10) {               a[j].s += d[i];             }             a[j].win[i]++;             flag = true;             break;           }         }         if (flag == false) {           a[k].name = name;           if (i < 10) {             a[k].s = d[i];           }           a[k].win[i]++;           k++;         }       }     }     sort(a, a + k, cmp1);     cout << a[0].name << endl;     sort(a, a + k, cmp2);     cout << a[0].name;     return 0;   }   