#include <bits/stdc++.h>
using namespace std;
int inputValue() {
  int a;
  cin >> a;
  return a;
}
void inputArray(int *p, int a) {
  for (int i = (0); i < (a); i++) {
    cin >> p[i];
  }
}
void inputVector(vector<int> *p, int a) {
  for (int i = (0); i < (a); i++) {
    int input;
    cin >> input;
    p->push_back(input);
  }
}
template <typename T>
void output(T a, int precision) {
  if (precision > 0) {
    cout << setprecision(precision) << a << "\n";
  } else {
    cout << a << "\n";
  }
}
const long long mod = pow(10, 9) + 7;
int main() {
  int n, m;
  cin >> n >> m;
  int x[n], y[m];
  for (int i = (0); i < (n); i++) {
    cin >> x[i];
  }
  for (int i = (0); i < (m); i++) {
    cin >> y[i];
  }
  long long score = 0;
  long long num_tempx = 0;
  for (int i = (0); i < (n); i++) {
    for (int j = (i + 1); j < (n); j++) {
      num_tempx += x[j] - x[i];
      if (num_tempx >= mod) {
        num_tempx -= mod;
      }
    }
  }
  long long num_tempy = 0;
  for (int i = (0); i < (m); i++) {
    for (int j = (i + 1); j < (m); j++) {
      num_tempy += y[j] - y[i];
      if (num_tempy >= mod) {
        num_tempy -= mod;
      }
    }
  }
  score = num_tempx * num_tempy;
  score %= mod;
  cout << (num_tempx * num_tempy) % mod << endl;
  return 0;
}
