#include<bits/stdc++.h>
using namespace std;
int n,m,st[300010][30],lg[300010];
inline int read()
{
int x=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
return x*f;
}
int qu(int l,int r){
int k=lg[r-l+1];
return max(st[l][k],st[r-(1<<k)+1][k]);
}
signed main(){
n=read();
for(int i=1;i<=n;i++){
st[i][0]=st[i+n][0]=st[i+n+n][0]=read();
}
lg[1]=0;
for(int i=2;i<=n+n+n;i++){
lg[i]=lg[i>>1]+1;
}
for(int j=1;j<=lg[n+n+n];j++){
for(int i=1;i+(1<<j)-1<=n+n+n;i++){
st[i][j]=max(st[i][j-1],st[i+(1<<(j-1))][j-1]);
}
}
for(int i=1;i<=n;i++){
int b=read();
int l=0,r=n+1;
while(l+1<r){
int mid=(l+r)>>1;
if(max(qu(i+n-mid,i+n-1),qu(i+n+1,i+n+mid))>=b){
r=mid;
}else{
l=mid;
}
}
if(max(qu(i+n-r,i),qu(i,i+n+r))<b){
cout<<-1<<" ";
}else{
cout<<r<<" ";
}
}
return 0;
}