#include <cstdio>
#include <queue>
#include <utility>
#include <algorithm>
using namespace std;
pair<int, int> fs[10005];
int main()
{
    int n, L, P;
    scanf("%d", &n);
    priority_queue<int> heap;
    for (int i = 0; i < n; i++) scanf("%d%d", &fs[i].first, &fs[i].second);
    sort(fs, fs + n);
    reverse(fs, fs + n);
    scanf("%d%d", &L, &P);
    int t = 0;
    heap.push(P);
    int index = 0;
    while (L > 0 && !heap.empty())
    {
        t++;
        int tmp = heap.top();
        heap.pop();
        L -= tmp;
        while (index < n && L <= fs[index].first) heap.push(fs[index++].second);
    }
    printf("%d\n", L <= 0 ? t - 1 : -1);
    return 0;
}