{ SS77: Moh Heng Ping, Nabil Christopher, Raffles Institution }

program noi3;

var
  coins: array[1..20] of integer;
  i,j,k: integer;
  inf, ouf: text;
  num: integer;
  weights: array[1..20] of integer;
  min: array[0..150,0..150] of integer;
  reqw, reqval: integer;

begin
  assign (inf, 'coin.in'); reset (inf);
  read (inf, num, reqval, reqw);
  for i := 1 to num do
  begin
    read (inf, coins[i], weights[i]);
  end;
  close (inf);

  for i := 0 to reqval do
    for j := 0 to reqw do
      min[i][j] := 30000;

  for i := 1 to num do
    min[coins[i],weights[i]] := 1;

  for i := 1 to reqval do
    for j := 1 to reqw do
      for k := 1 to num do
        if (i >= coins[k]) and (j >= weights[k]) then
          if (min[i-coins[k],j-weights[k]] + 1 < min[i][j]) then
            min[i][j] := min[i-coins[k],j-weights[k]] + 1;

  if (min[reqval][reqw] = 30000) then min[reqval][reqw] := 0;
  assign (ouf, 'coin.out'); rewrite (ouf);
  writeln (ouf,min[reqval][reqw]); close (ouf);
end.

