#include<iostream>
#include<cstdio>
using namespace std;
#define p 1000000007
long long m[200005],hole[200005],min_m=(long long)1e9,min_hole=(long long)1e9;
inline long long ksm(int a,int b)
{
int res=1;
while(b)
{
if(b&1) res=a*res%p;
a=a*a%p,b>>=1;
}
return (res-2)%p;
}
int main()
{
long long n;
scanf("%lld",&n);
long long ans=ksm(2,n);
for(int i=1;i<=n;i++)
{
scanf("%lld",&m[i]);
min_m=min(min_m,m[i]);
}
for(int i=1;i<=n;i++)
{
scanf("%lld",&hole[i]);
min_hole=min(min_hole,min(m[i]-hole[i],hole[i]-1));
}
cout<<(ans*min_hole+min_m)%p+1;
return 0;
}