#include<bits/stdc++.h>
using namespace std;
int main(){
  int64_t N, M;
  cin >> N >> M;
  vector<int64_t> n(N);
  vector<int64_t> m(M);
  for(int i=0; i<N; i++){
    cin >> n.at(i);
  }
  for(int i=0; i<M; i++){
    cin >> m.at(i);
  }
  int64_t MOD = 1e9+7;
  int64_t ans_n = 0;
  int64_t ans_m = 0;
  for(int i=0; i<N-1; i++){
    //区間i~i+1の寄与を計算
    ans_n += (i+1)*(N-1-i)*(n.at(i+1) - n.at(i));
    ans_n %= MOD;
  }
  for(int i=0; i<M-1; i++){
    ans_m += (i+1)*(M-1-i)*(m.at(i+1) - m.at(i));
    ans_m %= MOD;
  }
  //cout << ans_n << " " << ans_m << endl;
  cout << (ans_n * ans_m) % MOD << endl;
}