import java.io.{BufferedOutputStream, BufferedReader, InputStreamReader, PrintWriter}

case class Robot(x: Int, l: Int) {
  val left: Int = x - l
  val right: Int = x + l
}

object Main {
  def main(args: Array[String]): Unit = {
    val in = new BufferedReader(new InputStreamReader(System.in))
    val out = new PrintWriter(new BufferedOutputStream(System.out))
    val n = in.readLine().toInt
    val robots = Array.fill(n) {
      in.readLine().split("\\s+").map(_.toInt) match {
        case Array(x, l) => Robot(x, l)
      }
    }

    val robotsByRightMost = robots.sortWith {
      case (r1, r2) => r1.right < r2.right
    }

    out.println(
      robotsByRightMost.foldLeft((0, -1000000000)) {
        case ((num, min), robot) =>
          if (min <= robot.left) {
            (num + 1, robot.right)
          } else {
            (num, min)
          }
      }._1
    )

    out.flush()
  }
}
