#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define double long double
#define print(a) for(auto x : a) cout << x << " "; cout << endl
const int M = 1000000007;
const int N = 3e5+9;
const int INF = 2e9+1;
const int LINF = 2000000000000000001;
inline int power(int a, int b, int mod=M) {
int x = 1;
a %= mod;
while (b) {
if (b & 1) x = (x * a) % mod;
a = (a * a) % mod;
b >>= 1;
}
return x;
}
//_ ***************************** START Below *******************************
vector<vector<int>> a;
vector<int> consistency(int n){
//* {next minimum, row, col}
priority_queue<vector<int>, vector<vector<int>>, greater<vector<int>> > minHp;
int maxi = INT32_MIN;
for(int i=0; i<n; i++){
maxi = max(maxi, a[i][0]);
minHp.push({a[i][0], i, 0});
}
int s = -1;
int e = -1;
int dist = INT32_MAX;
while(!minHp.empty()){
auto top = minHp.top();
minHp.pop();
int mini = top[0];
int r = top[1];
int c = top[2];
if(maxi-mini < dist){
dist = maxi - mini;
s = mini;
e = maxi;
}
if(c+1 < a[r].size()) {
maxi = max(maxi, a[r][c+1]);
minHp.push({a[r][c+1], r, c+1});
}
else break;
}
return {s, e};
}
vector<int> practice(int n){
}
void solve() {
int n;
cin>> n;
a.resize(n);
for(int i=0; i<n; i++){
int m;
cin >> m;
for(int j=0; j<m; j++) {
int x;
cin >> x;
a[i].push_back(x);
}
}
auto ans = consistency(n);
cout << ans[0] << " " << ans[1] << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t = 1;
// cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50ICAgICAgICAgICAgICBsb25nIGxvbmcgaW50CiNkZWZpbmUgZG91YmxlICAgICAgICAgICBsb25nIGRvdWJsZQojZGVmaW5lIHByaW50KGEpICAgICAgICAgZm9yKGF1dG8geCA6IGEpIGNvdXQgPDwgeCA8PCAiICI7IGNvdXQgPDwgZW5kbAoKCmNvbnN0IGludCBNID0gMTAwMDAwMDAwNzsKY29uc3QgaW50IE4gPSAzZTUrOTsKY29uc3QgaW50IElORiA9IDJlOSsxOwpjb25zdCBpbnQgTElORiA9IDIwMDAwMDAwMDAwMDAwMDAwMDE7CgppbmxpbmUgaW50IHBvd2VyKGludCBhLCBpbnQgYiwgaW50IG1vZD1NKSB7CiAgICBpbnQgeCA9IDE7CiAgICBhICU9IG1vZDsKICAgIHdoaWxlIChiKSB7CiAgICAgICAgaWYgKGIgJiAxKSB4ID0gKHggKiBhKSAlIG1vZDsgCiAgICAgICAgYSA9IChhICogYSkgJSBtb2Q7CiAgICAgICAgYiA+Pj0gMTsKICAgIH0KICAgIHJldHVybiB4Owp9CgoKLy9fICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFNUQVJUIEJlbG93ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCgoKCnZlY3Rvcjx2ZWN0b3I8aW50Pj4gYTsKCnZlY3RvcjxpbnQ+IGNvbnNpc3RlbmN5KGludCBuKXsKICAgIC8vKiB7bmV4dCBtaW5pbXVtLCAgcm93LCBjb2x9CiAgICBwcmlvcml0eV9xdWV1ZTx2ZWN0b3I8aW50PiwgdmVjdG9yPHZlY3RvcjxpbnQ+PiwgZ3JlYXRlcjx2ZWN0b3I8aW50Pj4gPiBtaW5IcDsKICAgIGludCBtYXhpID0gSU5UMzJfTUlOOwogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKICAgICAgICBtYXhpID0gbWF4KG1heGksIGFbaV1bMF0pOwogICAgICAgIG1pbkhwLnB1c2goe2FbaV1bMF0sIGksIDB9KTsKICAgIH0KICAgIGludCBzID0gLTE7CiAgICBpbnQgZSA9IC0xOwogICAgaW50IGRpc3QgPSBJTlQzMl9NQVg7CiAgICB3aGlsZSghbWluSHAuZW1wdHkoKSl7CiAgICAgICAgYXV0byB0b3AgPSBtaW5IcC50b3AoKTsKICAgICAgICBtaW5IcC5wb3AoKTsKICAgICAgICBpbnQgbWluaSA9IHRvcFswXTsKICAgICAgICBpbnQgciA9IHRvcFsxXTsKICAgICAgICBpbnQgYyA9IHRvcFsyXTsKICAgICAgICBpZihtYXhpLW1pbmkgPCBkaXN0KXsKICAgICAgICAgICAgZGlzdCA9IG1heGkgLSBtaW5pOwogICAgICAgICAgICBzID0gbWluaTsKICAgICAgICAgICAgZSA9IG1heGk7CiAgICAgICAgfQogICAgICAgIGlmKGMrMSA8IGFbcl0uc2l6ZSgpKSB7CiAgICAgICAgICAgIG1heGkgPSBtYXgobWF4aSwgYVtyXVtjKzFdKTsKICAgICAgICAgICAgbWluSHAucHVzaCh7YVtyXVtjKzFdLCByLCBjKzF9KTsKICAgICAgICB9CiAgICAgICAgZWxzZSBicmVhazsKICAgICAgICAKICAgIH0KICAgIAogICAgcmV0dXJuIHtzLCBlfTsKfQoKCgoKCgoKCgoKCgoKCgp2ZWN0b3I8aW50PiBwcmFjdGljZShpbnQgbil7CgoKCn0KCgoKCgp2b2lkIHNvbHZlKCkgewogICAgCiAgICBpbnQgbjsKICAgIGNpbj4+IG47CiAgICAKICAgIGEucmVzaXplKG4pOwogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKICAgIAlpbnQgbTsKICAgIAljaW4gPj4gbTsKCQlmb3IoaW50IGo9MDsgajxtOyBqKyspIHsKCQkJaW50IHg7CgkJCWNpbiA+PiB4OwoJCQlhW2ldLnB1c2hfYmFjayh4KTsKCQl9CiAgICB9CiAgICAKICAgIGF1dG8gYW5zID0gY29uc2lzdGVuY3kobik7CiAgICAKICAgIGNvdXQgPDwgYW5zWzBdIDw8ICIgIiA8PCBhbnNbMV0gPDwgZW5kbDsKCgp9CgoKCgoKaW50MzJfdCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgogICAgaW50IHQgPSAxOwogICAgLy8gY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==