from bisect import bisect_right N = int(input()) H = list(map(int,input().split())) H = [(H[i],i+1) for i in range(N)] T = list(map(int,input().split())) T = [(T[i],i+1) for i in range(N)] H = sorted(H,key=lambda x:x[0]) D = {} for i in range(N): D[H[i][1]] = [i+1] for i in range(N): t,j = T[i] D[j].append(t) H1 = [0]+[H[i][0] for i in range(N)] for j in D: t = D[j].pop() ind = bisect_right(H1,t) D[j].append(ind-1) D1 = sorted(list(D.values()),key=lambda x:x[0]) D1 = [0]+[[D1[i][1]] for i in range(N)] D1[1].append(D1[1][0]) for i in range(2,N+1): D1[i].append(max(D1[i][0],D1[i-1][1])) K = 0 while 2**K=b1: cnt = 1 flag = True else: u = D1[u][0] cnt = 1 for k in range(K,-1,-1): if dp[u][k]=b1: print(cnt+1) else: print(-1)