#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
const int logo = 20;
const int off = 1 << logo;
const int treesiz = off << 1;
int n, m;
long long a[maxn];
long long b[maxn];
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++) scanf("%lld", a + i);
  for (int i = 0; i < m; i++) scanf("%lld", b + i);
  sort(a, a + n);
  sort(b, b + m);
  if (a[n - 1] > b[0]) {
    printf("-1");
    return 0;
  } else if (a[n - 1] == b[0]) {
    long long sol = 0;
    for (int i = 0; i < n; i++) sol += a[i];
    sol *= m;
    for (int i = 0; i < m; i++) sol += b[i];
    printf("%lld\n", sol - m * a[n - 1]);
  } else {
    long long sol = 0;
    for (int i = 0; i < n; i++) sol += a[i];
    sol *= m;
    for (int i = 0; i < m; i++) sol += b[i];
    printf("%lld\n", sol - (m - 1) * a[n - 1] - a[n - 2]);
  }
  return 0;
}
