N = gets.to_i
A = gets.split.map(&:to_i)
B = gets.split.map(&:to_i)
MOD = 10**9 + 7

works = A.zip(B)
works.sort! { |(a1, b1), (a2, b2)| a1 + b1 * a2 <=> a2 + b2 * a1 }
works.reverse!

ans = 0
x = 1
works.each do |a, b|
    ans += x * a
    ans %= MOD
    x = x * b % MOD
end

puts ans