#include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int n; ll x, y, d[100005]; int main(void){ cin >> n; ll even[2], odd[2]; for (int i = 0; i < 2; i++){ even[i] = odd[i] = -10000000005; } for (int i = 0; i < n; i++) cin >> d[i]; sort(d, d + n); for (int i = n - 1; i >= 0; i--){ if (d[i] % 2 == 0){ for (int j = 0; j < 2; j++){ if (even[j] < 0){ even[j] = d[i]; break; } } } else{ for (int j = 0; j < 2; j++){ if (odd[j] < 0){ odd[j] = d[i]; break; } } } } cin >> x >> y; ll D = max(x, -x) + max(y, -y); for (int i = 0; i < n; i++){ if (D == d[i]){ cout << 1 << endl; return 0; } } if (((D + even[0] + even[1]) % 2 == 0 && even[0] + even[1] >= D) || ((D + odd[0] + odd[1]) % 2 == 0 && odd[0] + odd[1] >= D) || ((D + even[0] + odd[0]) % 2 == 0 && even[0] + odd[0] >= D)){ cout << 2 << endl; return 0; } cout << -1 << endl; }