n=int(input()) A=[int(i) for i in input().split()] B=[int(i) for i in input().split()] T=[(A[i],B[i]) for i in range(n)] S=sum(A) ans=0 MOD=10**9+7 lev=1 # T.sort(key=lambda x:-((S-x[0])/x[1])) import itertools itr=itertools.permutations(T) # for it in itr: # ans=0 # lev=1 # for a,b in it: # ans+=lev*a # ans%=MOD # lev*=b # lev%=MOD # if ans==2048669: # print(it) from functools import cmp_to_key def cmp(a, b): return 1 if a[1]*b[0]+a[0] < b[1]*a[0]+b[0] else -1 T.sort(key=cmp_to_key(cmp)) # print(T) for a,b in T: ans+=lev*a ans%=MOD lev*=b lev%=MOD print(ans)