#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100100;
const long long inf = 1LL << 55;
long long times(long long a, long long b) {
  if (a >= inf / b)
    return inf;
  else
    return a * b;
}
int _A[MAXN], _B[MAXN];
int N, M;
long long solve(int *ar, int len, long long sum) {
  long long ret = times(sum, len);
  long long curs = 0;
  for (int i = 0; i < len; ++i) {
    long long val = curs + times((len - i), sum);
    if (val < ret) ret = val;
    curs += ar[i];
  }
  return ret;
}
int main() {
  scanf("%d %d", &N, &M);
  long long smA = 0, smB = 0;
  for (int i = 0; i < N; ++i) {
    scanf("%d", _A + i);
    smA += _A[i];
  }
  for (int i = 0; i < M; ++i) {
    scanf("%d", _B + i);
    smB += _B[i];
  }
  sort(_A, _A + N);
  sort(_B, _B + M);
  long long ans1 = solve(_A, N, smB);
  long long ans2 = solve(_B, M, smA);
  if (ans1 < ans2)
    cout << ans1 << "\n";
  else
    cout << ans2 << "\n";
  return 0;
}
