#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int ans = 0;
  long long int n, m;
  cin >> n >> m;
  long long int max_val = 0, min_val = INT_MAX;
  vector<long long int> b(n);
  vector<long long int> g(m);
  for (long long int i = 0; i < n; i++) {
    cin >> b[i];
    ans = ans + b[i];
    max_val = max(max_val, b[i]);
  }
  for (long long int i = 0; i < m; i++) {
    cin >> g[i];
    min_val = min(min_val, g[i]);
  }
  if (min_val >= max_val) {
    ans = ans * m;
    sort(b.begin(), b.end());
    sort(g.begin(), g.end());
    while (!g.empty()) {
      int c = m - 1;
      while (c > 0 && !g.empty()) {
        ans = ans + g.back() - b.back();
        g.pop_back();
        c = c - 1;
      }
      if (!g.empty() && !b.empty() && g.back() == b.back()) {
        g.pop_back();
      }
      b.pop_back();
    }
    cout << ans;
  } else {
    cout << -1;
  }
  return 0;
}
