import std.stdio, std.algorithm, std.conv, std.array, std.string, std.math, std.typecons, std.numeric;

alias R = Tuple!(long, "x", long, "l");

void main()
{
    auto N = readln.chomp.to!int;
    R[] rs;
    foreach (_; 0..N) {
        auto xl = readln.split.to!(long[]);
        rs ~= R(xl[0], xl[1]);
    }
    sort(rs);
    int last = -1;
    int r1, r2;
    foreach (i; 0..N) {
        if (last == -1) {
            r1 += 1;
            last = i;
        } else if (rs[i].x - rs[last].x >= rs[last].l + rs[i].l) {
            r1 += 1;
            last = i;
        }
    }
    foreach (i; 1..N) {
        if (last == -1) {
            r2 += 1;
            last = i;
        } else if (rs[i].x - rs[last].x >= rs[last].l + rs[i].l) {
            r2 += 1;
            last = i;
        }
    }

    writeln(max(r1, r2));
}