#include <bits/stdc++.h>
const int MOD = 1000000007;
long long add(long long a, long long b) {
  return ((a % MOD) + (b % MOD)) % MOD;
}
long long dif(long long a, long long b) {
  return llabs(((a % MOD) - (b % MOD)) % MOD);
}
long long mult(long long a, long long b) {
  return ((a % MOD) * (b % MOD)) % MOD;
}
int main() {
  int n, m;
  long long x[100000], y[100000];
  scanf("%d %d", &n, &m);
  for (int i = 0; i < n; i++) scanf("%lld", x + i);
  for (int i = 0; i < m; i++) scanf("%lld", y + i);
  long long sum = 0;
  for (int left = 0; left < n; left++) {
    for (int right = left + 1; right < n; right++) {
      long long dx = dif(x[right], x[left]);
      for (int bottom = 0; bottom < m; bottom++) {
        for (int top = bottom + 1; top < m; top++) {
          long long dy = dif(y[top], y[bottom]);
          sum = add(sum, mult(dx, dy));
        }
      }
    }
  }
  printf("%lld\n", sum);
  return 0;
}
