// Задача "Фигуоное катание"
// 3-я личная Интернет-олимпиада сезона 2009-2010
// Автор задачи: Сергей Мельников, svembox@gmail.com
// Автор решения: Владимир Ульянцев, ulyantsev@rain.ifmo.ru

type
    int = longint;
const
    MAXN = 99;

var
    n, m, x, y : int;
    a, b : array [0..MAXN] of int;
    i, j : int;

    c : array [0..MAXN, 0..MAXN] of int;

begin
    reset(input, 'figure.in');
    rewrite(output, 'figure.out');

    read(n, m, x, y);
    assert((0 <= n) and (n <= MAXN));
    assert((0 <= m) and (m <= MAXN));
    assert((0 <= x) and (x <= MAXN));
    assert((0 <= y) and (y <= MAXN));

    for i := 1 to n do begin
        read(b[i], a[i]);
        assert((0 <= a[i]) and (a[i] <= MAXN));
        assert((0 <= b[i]) and (b[i] <= MAXN));
    end;

    if (m = 0) then begin
        writeln(0);
        halt;
    end;

    j := 0;
    for i := 1 to n do begin
        m := m - b[i];
        j := j + a[i] - b[i];
    end;

    if (m < 0) or (m > j) then begin
        writeln(-1);
        halt;
    end;
end.
