#include <cstdio>
#include <algorithm>
using namespace std;

const int N = 100010;
const int MOD = 1000000007;

int n;
int how1[N], how2[N];
long long dp[N][3];

int main( void ) {
	scanf( "%d", &n );
	for( int i = 0; i < n; ++i ) scanf( "%d", &how1[i] );
	for( int i = 0; i < n-1; ++i ) scanf( "%d", &how2[i] );
	how2[n-1] = 0;
		
	dp[0][0] = how1[0];
	dp[0][1] = how2[0];
	
	for( int i = 1; i < n; ++i ) {
		dp[i][0] = ( dp[i-1][0]*( how1[i]+how2[i-1] )+dp[i-1][1]*( how1[i]+max( 0, how2[i-1]-1 ) ) )%MOD;
		dp[i][1] = ( dp[i-1][0]*how2[i]+dp[i-1][1]*how2[i] )%MOD;
	}	
	
	int sol = ( dp[n-1][0]+dp[n-1][1] )%MOD;
	printf( "%d\n", sol );
	
	return 0;
}
