n=int(input()) A=list(map(int,input().split())) B=list(map(int,input().split())) """ a1+b1*a2, a2+b2*a1 a1(1-b2), a2(1-b1) b=1, あとの通い 両方とも1ならどうでもよい """ kouho=[] ones=[] for i in range(n): a,b=A[i],B[i] if b==1: ones.append(a) else: kouho.append((a/(1-b1), a,b)) kouho.sort(reverse=True) level=1 ans=0 for _,a,b in kouho: ans+=a*level%mod ans%=mod level*=B level%=mod for a in ans: ans+=a*level%mod ans%=mod print(ans)