let rec upper_bound l r p =
  if r <= 1 + l
  then l
  else let m = (l + r) / 2 in
       if p m
       then upper_bound m r p
       else upper_bound l m p

let () = Scanf.scanf "%d\n" @@ fun n ->
  let xls = Array.init n @@ fun _ -> Scanf.scanf "%d %d\n" @@ fun x l -> x, l in
  Array.sort (fun (x, l) (x', l') -> compare (x - l) (x' - l')) xls;
  let dp = Array.make (n + 1) 0 in
  for i = 0 to n - 1 do
    dp.(i + 1) <-
      1 + dp.(upper_bound 0 (i + 1) (function
        | 0 -> true
        | j -> fst (xls.(j - 1)) + snd (xls.(j - 1)) <= fst (xls.(i)) - snd (xls.(i))))
  done;
  Printf.printf "%d\n" @@ Array.fold_left max 0 dp