#include<iostream>
using namespace std;
#include<string>
#include<string.h>
int opt[100000];
int arr_to_int(string str, int l, int r) {
int ans = 0;
for (int i = l; i < r; i++) {
ans = ans * 10 + (str[i] - '0');
}
return ans;
}
int main() {
int n;
cin >> n;
string* arr = new string[n];
char c;
while ((c=cin.get()) == '\n') {
continue;
}
for (int i = 0; i < n; i++) {
getline(cin, arr[i]);
arr[i] = c + arr[i];
if (i == n - 1)break;
while ((c = cin.get()) == '\n') {
continue;
}
}
int min, max;
min = 1e6;
max = -1;
int temp;
for (int i = 0; i < n; i++) {
for (int j = 0; j < arr[i].size();) {
while (j < arr[i].size()&& arr[i][j] == ' ')j++;
temp = j;
while (j < arr[i].size() && arr[i][j] != ' ') {
j++;
}
if (j < arr[i].size() ) {
int num = arr_to_int(arr[i], temp, j);
if (num < min) {
min = num;
}
if (num > max)max = num;
opt[num]++;
}
else if (j >= arr[i].size() ) {
int num = arr_to_int(arr[i], temp, arr[i].size());
if (num < min) {
min = num;
}
if (num > max)max = num;
opt[num]++;
}
}
}
int repet;
for (int i = min; i <= max; i++) {
if (opt[i] > 1)repet = i;
if (opt[i] < 1)temp = i;
}
cout << temp << ' ' << repet;
return 0;
}