#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void read(T &x) {
  int ch = 0, f = 0;
  x = 0;
  for (; !isdigit(ch); ch = getchar())
    if (ch == '-') f = 1;
  for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - 48;
  if (f) x = -x;
}
const long long N = 1000005;
long long a[N], b[N], ans, n, m, sum, tot;
signed main() {
  read(n), read(m);
  for (long long i = 1; i <= n; i++) read(a[i]), sum += a[i];
  for (long long i = 1; i <= m; i++) read(b[i]);
  sort(a + 1, a + n + 1);
  sort(b + 1, b + m + 1);
  if (a[n] > b[1]) return puts("-1"), 0;
  ans += 1ll * sum * m;
  for (long long i = 1; i <= m; i++)
    if (b[i] > a[n]) tot++, ans += b[i];
  if (tot == m && n == 1) return puts("-1"), 0;
  if (tot != m)
    ans -= a[n] * tot;
  else
    ans -= a[n] * (m - 1) + a[n - 1];
  cout << ans << endl;
  return 0;
}
