#include<iostream>
using namespace std;
const int N = 1e5+2;
const int mod = 1000000007;
int a[N],b[N],f[N];
int n,m;
int k;
int main(){
cin >> k;
cin >> n;
for(int i = 1 ; i <= n ; i ++){
f[i] = max(f[i],2);
cin >> a[i];
f[i] = max(f[i],a[i]+1);
}
cin >> m;
for(int i = 1 ; i <= m ; i ++){
f[i] = max(f[i],2);
cin >> b[i];
f[i] = max(f[i],b[i]+1);
}
long long ans = 0;
long long s = 1;
for(int i = n ; i >= 1 ; i --){
ans=(ans+(a[i]-b[i])*s%mod)%mod;
s = s*f[i]%mod;
}
cout << ans << endl;
return 0;
}