#include using namespace std; const long long mod = 1000000007; int main() { int n; cin >> n; vector a(n), b(n); for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < n; i++) { cin >> b[i]; } vector> p(n); for (int i = 0; i < n; i++) { p[i] = make_pair(((long double)(b[i] - 1) / a[i]), i); } sort(p.begin(), p.end()); reverse(p.begin(), p.end()); long long ans = 0; long long x = 1; for (int i = 0; i < n; i++) { int j = p[i].second; ans += x % mod * a[j] % mod; ans %= mod; x *= b[j]; x %= mod; } cout << ans << endl; return 0; }