#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+5;
struct cinema{
int ind,vo,zi;
}a[maxn],b[maxn];
int n,m,ind=0,maxshu=0,indb=0,yuc,zic;
int yu1[maxn],yu2[maxn],yushu[maxn],yuyue[maxn];
bool cmp(cinema x,cinema y){
if(x.zi==y.zi) return x.ind<y.ind;
return x.zi>y.zi;
}
inline int read(){
int a=0;char c;
while((c=getchar())<48);
do(a=a*10+(c^48));
while((c=getchar())>47);
return a;
}
int main(){
n=read();
for(int i=1;i<=n;i++)
yu1[i]=read();
sort(yu1+1,yu1+1+n);
for(int i=1;i<=n;i++){
if(yu1[i]!=yu2[ind]||ind==0)
yu2[++ind]=yu1[i];
++yushu[ind];
}
for(int i=1;i<=ind;i++)
maxshu=(maxshu<yushu[i])?yushu[i]:maxshu;
//cout<<maxshu<<endl;
for(int i=1;i<=ind;i++)
if(yushu[i]==maxshu){
yuyue[++yuyue[0]]=yu2[i];
}
//cout<<(lower_bound(yuyue+1,yuyue+1+yuyue[0],2)-yuyue)<<endl;
m=read();
for(int i=1;i<=m;i++){
a[i].vo=read();
a[i].ind=i;
}
for(int i=1;i<=m;i++){
zic=read();
int yuind=lower_bound(yu2+1,yu2+1+ind,zic)-yu2;
if(yu2[yuind]==zic) a[i].zi=yushu[yuind];
else a[i].zi=-1;
}
for(int i=1;i<=m;i++){
//cout<<yuyue[lower_bound(yuyue+1,yuyue+1+ind,a[i].vo)-yuyue]<<endl;
if(yuyue[lower_bound(yuyue+1,yuyue+1+yuyue[0],a[i].vo)-yuyue]==a[i].vo)
b[++indb]=a[i];
}
if(indb!=0){
sort(b+1,b+1+indb,cmp);
cout<<b[1].ind;
}else{
sort(a+1,a+1+m,cmp);
cout<<a[1].ind;
}
return 0;
}
我甚至找不到Hack数据.......