fun main(args : Array<String>) {
    val n = readLine()!!.toInt()
    val robos = Array<Robo?>(n){null}

    repeat(n) { idx ->
        val (x, l) = readLine()!!.split(" ").map { it.toInt() }
        robos[idx] = Robo(x, l, x-l, x+l)
    }

    robos.sortBy { it?.x }

    var cnt = 0
    var max = 0
    robos.forEachIndexed { index, robo ->
        if (index == 0) {
            max = robo!!.max
            return@forEachIndexed
        }
        if (max > robo!!.min) {
            cnt++
            max = Math.min(max, robo!!.max)
        } else {
            max = robo!!.max
        }
    }

    println(n - cnt)
}

data class Robo(val x: Int, val l: Int, val min: Int, val max: Int)