#include <bits/stdc++.h>
int a[200], b[200], i, n, m, m1, m2, m11;
int main() {
  scanf("%d %d", &n, &m);
  for (i = 0, m1 = -1, m11 = -1; i < n; i++) {
    scanf("%d", &a[i]);
    if (m1 < 0 || m1 > a[i]) m1 = a[i];
    if (m11 < a[i]) m11 = a[i];
  }
  for (i = 0, m2 = -1; i < m; i++) {
    scanf("%d", &b[i]);
    if (m2 < 0 || m2 > b[i]) m2 = b[i];
  }
  if (m11 >= 2 * m1 && m11 < m2)
    printf("%d\n", m11);
  else if (m11 < 2 * m1 && m1 * 2 < m2)
    printf("%d\n", 2 * m1);
  else
    printf("-1\n");
  return 0;
}
