#include <bits/stdc++.h>
using namespace std;
long long mod1 = 1000000007;
long long mod2 = 998244353;
long long gcd(long long a, long long b) {
  if (b == 0) {
    return a;
  } else
    return gcd(b, a % b);
}
void solve() {
  long long ans = 1000000000, n, m, m3 = 100000005, m4 = m3, j1, j2;
  cin >> n >> m;
  long long a[n], sumb = 0, sumg = 0, m1 = 0, m2 = 0;
  for (long long i = 0; i < n; i++) {
    cin >> a[i];
    if (m1 < a[i]) {
      m2 = m1;
      m1 = a[i];
    } else if (m2 < a[i])
      m2 = a[i];
    sumb += a[i];
  }
  long long b[m];
  for (long long i = 0; i < m; i++) {
    cin >> b[i];
    if (m3 > b[i]) {
      m4 = m3;
      m3 = b[i];
    } else if (m4 > b[i])
      m4 = b[i];
    sumg += b[i];
  }
  if (m1 > m3) {
    cout << -1;
    return;
  }
  ans = m * sumb - m1 * m + sumg;
  if (m3 > m1) ans += m1 - m2;
  cout << ans;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) solve();
  return 0;
}
