## https://yukicoder.me/problems/no/2008 from functools import cmp_to_key MOD = 10 ** 9 + 7 def main(): N = int(input()) A = list(map(int, input().split())) B = list(map(int, input().split())) array = [(A[i], B[i]) for i in range(N)] def compare_items(a, b): if (a[0] + b[0] * a[1]) > (b[0] + a[0] * b[1]): return 1 elif (a[0] + b[0] * a[1]) < (b[0] + a[0] * b[1]): return -1 else: return 0 sorted_list = sorted(array, key=cmp_to_key(compare_items), reverse=True) answer = 0 level = 1 for a, b in sorted_list: answer += (a * level) % MOD answer %= MOD level *= b level %= MOD print(answer) if __name__ == "__main__": main()