#include <bits/stdc++.h>
using namespace std;
const int MX = 2e6 + 10;
const int mod = 1e9 + 7;
const long long int inf = 1LL << 62;
int dx4[] = {0, 0, -1, 1};
int dy4[] = {1, -1, 0, 0};
int dx[] = {1, 1, 1, 0, 0, -1, -1, -1};
int dy[] = {1, 0, -1, 1, -1, 1, 0, -1};
vector<long long int> v, v1;
int main() {
  long long int n, m, k, q, t, cnt = 0, sum = 0, ans = 0, mx = -inf, mn = inf,
                               a, b, c, d, e, f, g, h, i, j, x, y, z, temp,
                               temp1;
  string s, s1, s2, s3;
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    cin >> a;
    v.push_back(a);
  }
  sort((v).begin(), (v).end());
  for (int i = 0; i < m; i++) {
    cin >> a;
    v1.push_back(a);
  }
  sort((v1).begin(), (v1).end());
  if (2 * v[0] >= v1[0] || v[n - 1] >= v1[0])
    cout << -1 << endl;
  else {
    for (i = v[n - 1]; i < v1[m - 1]; i++) {
      if (i >= 2 * v[0]) break;
    }
    cout << i << endl;
  }
  return 0;
}
