#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-6;
const int INF = 0x3f3f3f3f;
const long long LLINF = 0x3f3f3f3f3f3f3f3f;
const int maxn = (int)1e5 + 17;
const int mod = (int)1e9 + 7;
int n, m, t, kase, k;
int a[maxn], b[maxn];
int main() {
  kase = 1;
  while (~scanf("%d %d", &n, &m)) {
    for (int i = 0; i < n; ++i) {
      scanf("%d", &a[i]);
    }
    int minb = INF, maxb = 0;
    long long ans = 0;
    for (int i = 0; i < m; ++i) {
      scanf("%d", &b[i]);
      minb = min(minb, b[i]);
      maxb = max(maxb, b[i]);
      ans += b[i];
    }
    sort(a, a + n, [&](int x, int y) { return x > y; });
    if (minb != a[0]) ans += a[0] - a[1];
    int ok = (a[0] <= minb);
    for (int i = 1; i < n; ++i) {
      if (a[i] > minb) ok = 0;
      ans += 1LL * m * a[i];
    }
    printf("%lld\n", ok ? ans : -1);
  }
  return 0;
}
