import sys,random,bisect from collections import deque,defaultdict from heapq import heapify,heappop,heappush from itertools import permutations from math import log,gcd input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) """ ai + bi * aj > aj + bj* ai aj (bi-1) > ai (bj-1) bi-1/ai """ N = int(input()) A = li() B = li() idx = [i for i in range(N)] idx.sort(key=lambda i:(B[i]-1)/A[i],reverse=True) x = 1 res = 0 mod = 10**9 + 7 for i in idx: a,b = A[i],B[i] res += a * x % mod res %= mod x = x * b % mod print(res)