object Main extends App{
    def readLine() = io.StdIn.readLine()
    
    val n = readLine().toInt
    val robots = Iterator.continually(readLine()).take(n).map(_.split(' ').map(_.toLong)).toArray.sortBy(_(0))
    
    def interference(robots: Array[Array[Long]], index: Int) = {
        val Array(x, l, _*) = robots(index)
        
        def findLeft(leftIndex: Int): Int = if (leftIndex == -1)
            0
        else if (robots(leftIndex)(0) + robots(leftIndex)(1) <= x - l)
            leftIndex + 1
        else
            findLeft(leftIndex - 1)
        
        def findRight(rightIndex: Int): Int = if (rightIndex == robots.length)
            robots.length - 1
        else if (robots(rightIndex)(0) - robots(rightIndex)(1) >= x + l)
            rightIndex - 1
        else
            findRight(rightIndex + 1)
        
        findRight(index) - findLeft(index)
    }
    
    def removeRobots(robots: Array[Array[Long]]): Array[Array[Long]] = {
        val max = robots.maxBy(_(2))
        if (max(2) == 0)
            robots
        else {
            val next = robots.filter(_ != max)
            removeRobots((0 until next.length).map { i =>
                next(i) match {
                    case zero @ Array(_, _, 0) => zero
                    case Array(x, l, _) => Array(x, l, interference(next, i))
                }
            }.toArray)
        }
    }
    
    val init = (0 until n).map { i =>
        val r = robots(i)
        Array(r(0), r(1), interference(robots, i))
    }.toArray
    
    val answer = removeRobots(init)
    
    println(answer.length)
}
