#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 8;
map<long long, int> mp;
long long a[N], b[N];
int main() {
  int n, m;
  scanf("%d %d", &n, &m);
  long long ans = 0;
  long long mb = -1, mg = 0x3f3f3f3f;
  for (int i = 1; i <= n; ++i) {
    scanf("%lld", &a[i]);
    ans += (long long)m * a[i];
    mp[a[i]] += m;
    mb = max(mb, a[i]);
  }
  for (int i = 1; i <= m; ++i) {
    scanf("%lld", &b[i]);
    mg = min(mg, b[i]);
  }
  if (mg < mb) {
    puts("-1");
    return 0;
  }
  sort(a + 1, a + 1 + n);
  sort(b + 1, b + 1 + m);
  int k = unique(a + 1, a + 1 + n) - a - 1;
  int p = k;
  for (int i = m; i >= 1; --i) {
    if (mp[b[i]]) continue;
    while (mp[a[p]] <= 1 || b[i] < a[p]) --p;
    --mp[a[p]];
    ans += b[i] - a[p];
  }
  printf("%lld", ans);
  return 0;
}
