#include <bits/stdc++.h>
int n, m;
long long x[100000], y[100000];
long long w[100000], cy[100000];
int main(void) {
  int i;
  long long w, h;
  while (scanf("%d%d", &n, &m) == 2) {
    for (i = 0; i < n; i++) scanf("%lld", &x[i]);
    for (i = 0; i < m; i++) scanf("%lld", &y[i]);
    w = 0;
    for (i = 1; i < n; i++) {
      w = (w + (x[i] - x[i - 1]) * ((n - 1) * i - i * (i - 1))) % 1000000007;
    }
    h = 0;
    for (i = 1; i < m; i++) {
      h = (h + (y[i] - y[i - 1]) * ((m - 1) * i - i * (i - 1))) % 1000000007;
    }
    printf("%lld\n", (w * h) % 1000000007);
  }
  return 0;
}
