#include <bits/stdc++.h>
using namespace std;
int n;
int m;
vector<int> b;
vector<int> g;
priority_queue<pair<long long int, int> > q;
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    int a;
    scanf("%d", &a);
    b.push_back(a);
  }
  for (int i = 0; i < m; i++) {
    int a;
    scanf("%d", &a);
    g.push_back(a);
  }
  long long int ans = 0;
  long long int hd = 0;
  for (long long int el : b) {
    ans += el * m;
    q.push(make_pair(el, m - 1));
    hd = max(hd, el);
  }
  sort(g.begin(), g.end());
  for (long long int z : g) {
    if (z < hd) {
      puts("-1");
      return 0;
    }
    auto d = q.top();
    q.pop();
    ans += z - d.first;
    if (z != d.first) d.second--;
    if (d.second) {
      q.push(d);
    }
  }
  printf("%lld\n", ans);
  return 0;
}
