#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, m;
  cin >> n >> m;
  vector<long long> minGive(n);
  vector<long long> maxGet(m);
  long long answer = 0;
  for (long long& i : minGive) {
    cin >> i;
    answer += m * i;
  }
  for (long long& i : maxGet) {
    cin >> i;
  }
  sort(minGive.begin(), minGive.end());
  sort(maxGet.begin(), maxGet.end());
  long long a1 = minGive.back();
  long long a2 = minGive[n - 2];
  long long b = maxGet[0];
  if (b < a1 || (b > a1 && (n == 1 || m == 1))) {
    cout << -1;
    return 0;
  }
  for (long long& i : maxGet) {
    answer += i - a1;
  }
  if (b > a1) {
    answer += a1 - a2;
  }
  cout << answer;
  return 0;
}
