#include "horses.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
using ll = long long;
const ll MOD = 1000000007LL;
const ll LIM = 2000000000LL;
vector<ll> x, y;
static int calc() {
int N = (int)x.size();
ll p = x.back();
int l = N - 1;
while (l - 1 >= 0 && x[l - 1] <= LIM / p) {
p *= x[--l];
}
ll P = 1;
for (int i = 0; i < l; i++) {
P = (__int128)P * x[i] % MOD;
}
p = 1;
ll mx = 1;
for (int i = l; i < N; i++) {
p *= x[i];
mx = max(mx, p * y[i]);
}
ll ans = (ll)((__int128)P * (mx % MOD) % MOD);
return (int)ans;
}
int init(int N, int X[], int Y[]) {
x.clear();
y.clear();
for (int i = 0; i < N; i++) x.pb(X[i]);
for (int i = 0; i < N; i++) y.pb(Y[i]);
return calc();
}
int updateX(int pos, int val) {
x[pos] = val;
return calc();
}
int updateY(int pos, int val) {
y[pos] = val;
return calc();
}