#include <iostream>
using namespace std;

typedef long long lint;
#define M 1000000007

int main(){
    lint n,m;
    cin >> n >> m;
    lint *x,*y;
    x=new lint[n];
    y=new lint[m];
    for(int i=0;i<n;i++) cin >> x[i];
    for(int i=0;i<m;i++) cin >> y[i];

    lint ax=0,ay=0;
    for(lint i=1;i<n;i++){
        ax+=(x[i]-x[i-1])*i%M*(n-i)%M;
        ax%=M;
    }
    for(lint i=1;i<m;i++){
        ay+=(y[i]-y[i-1])*i%M*(m-i)%M;
        ay%=M;
    }
    cout << (ax*ay%M) << endl;

    delete[] x,y;
    return 0;
}