#include<bits/stdc++.h>
using namespace
std;
struct node
{
int
x, h;
} arr[
100005
];
int main()
{
int
n;
cin>>n;
for(int i = 0
; i<n; i++) {
cin>>arr[i].x>>arr[i].h;
}
int cnt=1, end=arr[0].x; //第一棵树往前倒
for(int i = 1; i<n-1
; i++) {
if(arr[i].x-arr[i].h>end){ //可以往前倒
cnt++;
end=arr[i].x;
}
else if(arr[i].x+arr[i].h<arr[i+1].x){ //可以往后倒
cnt++;
end=arr[i].x+arr[i].h;
}
else end=arr[i].x; //不倒
}
cout<<cnt+
1; //最后一棵树,一定可以往后倒
return 0
;