#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n = 0, m = 0, mx = 0;
  long long ans = 0;
  bool bad = false;
  cin >> n >> m;
  vector<pair<long long, long long> > b(n);
  vector<long long> g(m);
  for (int i = 0; i < n; i++) {
    cin >> b[i].first;
    b[i].second = 0;
    ans += b[i].first * m;
    mx = max(mx, b[i].first);
  }
  for (int i = 0; i < m; i++) cin >> g[i];
  long long mn = *min_element((g).begin(), (g).end());
  for (int i = 0; i < n; i++) bad |= (b[i].first > mn);
  if (bad) {
    cout << -1;
    return 0;
  }
  sort((b).rbegin(), (b).rend());
  sort((g).rbegin(), (g).rend());
  int pos = 0;
  for (int i = 0; i < m; i++) {
    while (g[i] > mx && b[pos].second == m - 1) pos++;
    ans += g[i] - b[pos].first;
    b[pos].second++;
  }
  cout << ans;
  return 0;
}
