#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
const int N = 1e5 + 5;
int n, m, a[N], b[N], mx, mn = 1e9 + 5;
long long sum, ans;
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; ++i) {
    scanf("%d", a + i);
    mx = max(mx, a[i]);
  }
  for (int i = 0; i < m; ++i) {
    scanf("%d", b + i);
    mn = min(mn, b[i]);
    sum += b[i];
  }
  if (mx > mn) return cout << "-1", 0;
  sort(a, a + n);
  sort(b, b + m);
  reverse(a, a + n);
  reverse(b, b + m);
  bool flag = 0;
  for (int i = 0; i < n; ++i) {
    if (flag)
      ans += 1ll * a[i] * m;
    else if (i == 0) {
      if (mx == mn) {
        ans += sum;
        flag = 1;
      } else
        ans += sum - b[0] + a[0];
    } else if (i == 1) {
      ans += 1ll * b[0] + 1ll * a[i] * (m - 1);
      flag = 1;
    }
  }
  cout << ans;
  return 0;
}
