#include <bits/stdc++.h>
using namespace std;
long long max(long long a, long long b) {
  if (a >= b)
    return a;
  else
    return b;
}
long long min(long long a, long long b) {
  if (a >= b)
    return b;
  else
    return a;
}
int main() {
  long long n, m;
  cin >> n >> m;
  long long b[n];
  long long g[m];
  for (int i = 0; i < n; i++) cin >> b[i];
  for (int i = 0; i < m; i++) cin >> g[i];
  sort(b, b + n);
  sort(g, g + m);
  if (g[0] < b[n - 1])
    cout << -1 << endl;
  else if (g[0] == b[n - 1]) {
    long long ans = 0;
    for (int i = 0; i < n - 1; i++) {
      ans += (long long)m * b[i];
    }
    for (int i = 0; i < m; i++) {
      ans += g[i];
    }
    cout << ans << endl;
  } else {
    long long ans = 0;
    for (int i = 0; i < n - 1; i++) {
      if (i < n - 2)
        ans += (long long)m * b[i];
      else if (i == n - 2)
        ans += (long long)(m - 1) * b[i] + g[0];
    }
    ans += b[n - 1];
    for (int i = 1; i < m; i++) {
      ans += g[i];
    }
    cout << ans << endl;
  }
}
