#include using namespace std; #define int long long #define db double #define gcd(a,b) __gcd(a,b) #define lcm(a,b) a*b / __gcd(a,b) #define I first #define II second #define pb push_back #define ii pair const int INF = 2 * 1e18; const int N = 3e5 + 1; const int MOD = 1e9 + 7; void solve() { int n, s, t, k; cin >> n >> s >> t >> k; vector a(n + 1); int mn = INF; for (int i = 1; i <= n; i++) cin >> a[i], mn = min(mn, a[i]); if (a[s] + a[t] <= k) cout << 1 << '\n'; else if (a[s] + mn <= k && a[t] + mn <= k) cout << 2 << '\n'; else cout << -1 << '\n'; } int32_t main() { #define TASKNAME "test" ios_base::sync_with_stdio(0); cin.tie(0); if (fopen(TASKNAME ".inp","r" )) { freopen(TASKNAME ".inp","r",stdin); freopen(TASKNAME ".out","w",stdout); } int t = 1; //cin >> t; while (t--) solve(); return 0; }