#include using namespace std; const int MAX = 1e5 + 10; int n; long long d[MAX], x, y; int main() { scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%lld", d + i); } n++; scanf("%lld%lld", &x, &y); x = llabs(x); y = llabs(y); if (x == 0 && y == 0) { cout << 0 << endl; return 0; } long long xy = x + y; for (int i = 0; i < n; i++) { if (d[i] == xy) { cout << 1 << endl; return 0; } } sort(d, d + n); if (xy % 2) { long long now[2]; now[0] = now[1] = -1; for (int i = 0; i < n; i++) { now[d[i] % 2] = d[i]; if (now[0] != -1 && now[1] != -1) { if (llabs(now[0] - now[1]) <= xy && xy <= now[0] + now[1]) { cout << 2 << endl; return 0; } } } } else { if (xy <= d[n - 1] * 2) { cout << 2 << endl; return 0; } } cout << -1 << endl; return 0; }