#include #include using namespace std; using mint = atcoder::modint1000000007; int main() { ios::sync_with_stdio(false); cin.tie(0); int h, w; cin >> h >> w; vector a(h), b(w); for(auto &&v : a) cin >> v; sort(a.begin(), a.end()); for(auto &&v : b) cin >> v; sort(b.begin(), b.end()); vector bs(w + 1); for(int i = 0; i < w; i++) bs[i + 1] = bs[i] + mint::raw(b[i]); mint mn, mx; int j = 0, k = 0; for(int i = 0; i < h; i++){ while(j < w && b[j] < a[i]) j++; while(k < w && b[k] < a[i]) mn += b[k++]; if(k < w && b[k] == a[i]) k++; mn += a[i]; mx += mint::raw(w - j) * mint::raw(a[i]) + bs[j]; } cout << mn.val() << ' ' << mx.val() << '\n'; }