#include <bits/stdc++.h>
using namespace std;
const int N = 7e4 + 10;
;
int n;
void solve() {
  long long int n, m;
  cin >> n >> m;
  long long int b[n + 2];
  long long int g[m + 2];
  long long int mx = -3;
  long long int first = 0;
  for (int i = 1; i <= n; i++) {
    cin >> b[i];
    mx = max(mx, b[i]);
  }
  for (int i = 1; i <= m; i++) {
    cin >> g[i];
    if (g[i] < mx) first = 1;
  }
  if (first) {
    cout << -1 << '\n';
    return;
  } else {
    long long int sum = 0;
    multiset<long long int> ms;
    for (int i = 1; i <= m; i++) {
      ms.insert(g[i]);
    }
    for (int i = 1; i <= n; i++) {
      sum += b[i];
      if (ms.count(b[i])) {
        ms.erase(ms.find(b[i]));
      }
    }
    long long int lft = (long long int)n * (m - 1);
    long long int cnt = 0;
    while (ms.size()) {
      long long int x = *ms.begin();
      ms.erase(ms.find(x));
      sum += x;
      cnt++;
    }
    lft -= cnt;
    sort(b + 1, b + n + 1);
    for (int i = 1; i <= n; i++) {
      sum += (min((long long int)m - 1, lft)) * b[i];
      lft -= min((long long int)m - 1, lft);
    }
    cout << sum << '\n';
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int T;
  T = 1;
  while (T--) {
    solve();
  }
}
