#include<iostream>
#include<vector>
const int MOD = 1000000007;
using namespace std;
vector<int> A(1e5+1);
vector<int> B(1e5+1);
int main() {
int N;
cin >> N;
int Ma, Mb;
cin >> Ma;
for (int i = Ma - 1; i >= 0; i--) {
cin >> A[i];
}
cin >> Mb;
for (int i = Mb - 1; i >= 0; i--) {
cin >> B[i];
}
int delet;
long long sum = 0;
long long ex = 1;
for (int i = 0; i < max(Ma, Mb); i++) {
delet = A[i] - B[i];
sum = (sum + delet * ex + MOD) % MOD;
ex = (ex * (max(max(A[i], B[i]), 1) + 1)) % MOD;
}
cout << sum << endl;
}