(* O(2^d d) *)
Scanf.scanf " %d %d" @@ fun d g ->
  let pcs = Array.init d @@ fun _ -> Scanf.scanf " %d %d" @@ fun p c -> p, c in
  let ans = ref max_int in
  let rec find acc rest i bits =
    if rest <= 0 then acc
    else if i < 0 then max_int
    else if bits lsr i land 1 = 1 then find acc rest (i - 1) bits
    else
      let p, _ = pcs.(i) in
      let m = (i + 1) * 100 in
      let n = min (p - 1) @@ (rest + m - 1) / m in
      find (acc + n) (rest - n * m) (i - 1) bits in
  let points = Array.init d @@ fun i -> let p, c = pcs.(i) in p, p * (i + 1) * 100 + c in
  let f bits =
    let c, sum = ref 0, ref 0 in
    for i = 0 to d - 1 do
      if bits lsr i land 1 = 1 then
        let p, s = points.(i) in
        sum := !sum + s;
        c := !c + p;
    done;
    !c, !sum in
  for i = 0 to 1 lsl d - 1 do
    let c, s = f i in
    ans := min !ans @@ find c (g - s) (d - 1) i
  done;
  Printf.printf "%d\n" !ans