#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define l(a, b, i) for (ll i = a; i < b; i++)
#define rl(a, b, i) for (ll i = a; i >= b; i--)
#define vpair vector<pair<ll, ll>>
#define inf LLONG_MAX
#define ninf LLONG_MIN
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
ll N; cin >> N; vector<ll> vecA(N + 1, 0), vecB(N + 1, 0);
l(1, N + 1, i) cin >> vecA[i];
l(1, N + 1, i) cin >> vecB[i];
map<ll, ll> mp;
vector<vector<ll>> grid(N + 1, vector<ll> (N + 1, 0));
l(1, N + 1, i) {
grid[i][1] = vecA[i];
mp[grid[i][1]]++;
}
l(1, N + 1, i) {
grid[1][i] = vecB[i];
mp[grid[1][i]]++;
}
mp[grid[1][1]]--; // vì bị dup từ vecA lẫn vecB ó
l(2, N + 1, i) {
l(2, N + 1, j) {
grid[i][j] = max(grid[i - 1][j], grid[i][j - 1]);
mp[grid[i][j]]++;
}
}
ll ans = 0;
ll num = 0;
for (auto i = mp.begin(); i != mp.end(); i++) {
if (i -> second > ans) {
ans = i -> second;
num = i -> first;
}
else if (i -> second == ans) {
if (i -> first > num) num = i -> first;
}
}
cout << num << ' ' << ans;
}