#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 100;
const int inf = 0x3f3f3f3f;
int n, m;
long long ans;
long long b[maxn], g[maxn];
bool cmp(int a, int b) { return a > b; }
int main() {
  long long bmx = 0;
  int flag = 1, cnt = 0;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &b[i]);
    ans += b[i] * m;
    bmx = max(bmx, b[i]);
  }
  sort(b + 1, b + 1 + n, cmp);
  for (int i = 1; i <= m; i++) {
    scanf("%lld", &g[i]);
    if (g[i] < bmx) flag = 0;
    if (g[i] > bmx) {
      cnt++;
      ans += g[i] - b[1 + cnt / m];
    }
  }
  if (flag) {
    printf("%lld\n", ans);
  } else {
    printf("-1\n");
  }
  return 0;
}
