#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <vector>
using namespace std;
int a[100001],n,b[100001];
const int mod=1000000007;
int main(){
    long long rj=1;
    cin>>n;
    for (int i=0; i<n; ++i){
        cin>>a[i];
    }
    int p;
    for (int i=0; i<n-1; ++i){
        cin>>p;
        if (a[i+1]==0&&p>0) {a[i+1]+=1; --p;}
        if (a[i]==0&&p>0) {a[i]=1; --p;}
        b[i]=p;}
    for (int i=0; i<n; ++i){
        rj*=a[i]%mod;
        rj%=mod;
    }
    cout<<rj;
	return 0;
}
