#include <bits/stdc++.h>
const int N = 100005;
const long double pi = 3.141592653;
const long long MOD = 1000000007;
using namespace std;
int dx[9] = {1, -1, 0, 0, 1, 1, -1, -1, 0};
int dy[9] = {0, 0, 1, -1, 1, -1, 1, -1, 0};
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int T = 1;
  while (T--) {
    long long n, m, i, j, ans = 0;
    cin >> n >> m;
    vector<long long> b(n), g(m);
    for (i = 0; i < n; i++) cin >> b[i];
    for (i = 0; i < m; i++) cin >> g[i];
    sort(b.begin(), b.end());
    sort(g.begin(), g.end());
    for (i = 0; i < m; i++) {
      if (g[i] < b.back()) break;
    }
    if (i < m)
      ans = -1;
    else {
      for (i = 0; i < n; i++) ans = ans + b[i];
      ans = ans * m;
      vector<long long> cnt(n, m - 1);
      j = n - 1;
      for (i = m - 1; i >= 0;) {
        if (g[i] > b[j]) {
          if (cnt[j] > 0) {
            ans = ans + g[i] - b[j];
            cnt[j]--;
            i--;
          } else
            j--;
        } else {
          if (cnt[j] > 0) {
            cnt[j]--;
            i--;
          } else {
            j--;
            i--;
          }
        }
      }
    }
    cout << ans;
  }
  return 0;
}
