#include <bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define ertunt return
using namespace std;
ll mod = 998244353;
vector<ll> adj[600007];
vector<ll> f(600005), inv(600005);
ll modpow(ll a, ll b){
ll res = 1;
while(b){
if(b & 1){
res *= a;
res %= mod;
}
a *= a;
a %= mod;
b >>= 1;
}
ertunt res;
}
ll nCk(ll n, ll k){
if(k < 0 || k > n) ertunt 0;
ertunt f[n] * inv[k] % mod * inv[n - k] % mod;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
map<ll,ll>mp;
ll n;
cin >> n;
vector<ll>a(n),b(n);
for(auto &x : a){
cin >> x;
mp[x]++;
}
for(auto &x : b){
cin >> x;
mp[x]++;
}
mp[a[0]]--;
for(ll i = 2; i < n; i++)a[i] = max(a[i],a[i-1]);
for(ll i = 2; i < n; i++)b[i] = max(b[i],b[i-1]);
vector<ll>add(n+4,0);
for(ll i = 1; i < n; i++){
auto it = upper_bound(b.begin()+1,b.end(),a[i]) - b.begin();
mp[a[i]]+=it-1;
add[it-1]++;
add[n]--;
}
for(ll i = 1; i <= n; i++)add[i]+=add[i-1];
for(ll i = 1; i < n; i++){
mp[b[i]]+=add[i-1];
}
ll mx = 0,ans;
for(auto [x,y] : mp){
if(y >= mx){
mx = y;
ans = x;
}
}
cout << ans << ' ' << mx;
}