#include using namespace std; typedef long long ll; typedef pair P; #define REP(i,n) for(ll i=0;i> H >> W; vector A(H),B(W),C; REP(i,H) cin >> A[i]; REP(i,W) cin >> B[i]; sort(B.begin(),B.end()); C=B; for(i=1;i ma,mb; REP(i,H) ma[A[i]]++; REP(i,W) mb[B[i]]++; ll MN=0; for(auto x:ma){ if(mb.count(x.first)==0){ MN+=(x.first)*(x.second); MN%=MOD; } else{ MN+=(x.first)*max(x.second,mb[x.first]); MN%=MOD; } } for(auto x:mb){ if(ma.count(x.first)==0){ MN+=(x.first)*(x.second); MN%=MOD; } } cout << MN << endl; ll MX=0; REP(i,H){ ll x=lower_bound(B.begin(),B.end(),A[i])-B.begin(); MX+=(W-x)*A[i]; MX%=MOD; if(x>=1){ MX+=C[x-1]; MX%=MOD; } } cout << MX << endl; return 0; }