#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
int N, x; cin >> N;
vector<int> A, B, a;
for (int i = 0; i < N; i++) {
cin >> x;
A.push_back(x);
a.push_back(x);
}
for (int i = 0; i < N; i++) {
cin >> x;
B.push_back(x);
a.push_back(x);
}
sort(a.begin(), a.end());
a.erase(unique(a.begin(), a.end()), a.end());
for (int i = 0; i < N; i++) {
A[i] = lower_bound(a.begin(), a.end(), A[i]) - a.begin();
B[i] = lower_bound(a.begin(), a.end(), B[i]) - a.begin();
}
vector<pair<int, int>> firstocc(a.size(), pair<int, int>(INT_MAX, INT_MAX));
vector<int> occ(a.size(), 0);
for (int i = N - 1; i > 0; i--) {
firstocc[A[i]].first = i;
firstocc[B[i]].second = i;
occ[A[i]]++, occ[B[i]]++;
}
occ[A[0]]++;
int mina = N - 1, minb = N - 1;
for (int i = a.size() - 1; i >= 0; i--) {
int nmina = min(mina, firstocc[i].first - 1), nminb = min(minb, firstocc[i].second - 1);
occ[i] += (mina * minb) - (nmina * nminb);
mina = nmina, minb = nminb;
}
int cmax = 0, cind = 0;
for (int i = 0; i < a.size(); i++) if (occ[i] >= cmax) cmax = occ[i], cind = i;
cout << a[cind] << ' ' << cmax << '\n';
}