4
10 4
15 1
19 3
20 1
 2
1 999999999
1000000000 1000000000
 67
1 1
3 8
4 10
7 8
9 2
10 1
11 5
12 8
13 4
16 6
18 3
19 3
22 5
24 6
27 5
28 3
29 3
30 5
32 5
33 10
34 7
35 8
36 5
41 3
42 2
43 5
46 4
48 4
49 9
52 4
53 9
55 1
56 4
59 7
68 7
69 4
71 9
72 10
74 5
76 4
77 9
80 7
81 9
82 5
83 5
84 9
85 7
86 9
87 4
88 7
89 10
90 3
91 5
92 10
93 5
94 8
95 4
96 2
97 10
98 1
99 3
100 1
101 5
102 4
103 8
104 8
105 8
 10
999999900 1000000000
999999901 1000000000
999999902 1000000000
999999903 1000000000
999999904 1000000000
999999905 1000000000
999999906 1000000000
999999907 1000000000
999999908 1000000000
999999909 1000000000
 35
1 7
3 11
6 12
7 6
8 5
9 11
15 3
16 10
22 2
23 3
25 7
27 3
34 5
35 10
37 3
39 4
40 5
41 1
44 1
47 7
48 11
50 6
52 5
57 2
58 7
60 4
62 1
67 3
68 12
69 8
70 1
71 5
72 5
73 6
74 4
 1
1000000000 1000000000
 2
100000000 1000000000
1000000000 1000000000
 10
7 12
10 2
12 2
15 1
19 2
20 1
53 25
63 10
75 12
87 1
 3
1 1
1000 1000
1000000000 1000000000
 40
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
11 1
12 1
13 1
14 1
15 1
16 1
17 1
18 1
19 1
20 1
21 1
22 1
23 1
24 1
25 1
26 1
27 1
28 1
29 1
30 1
31 1
32 1
33 1
34 1
35 1
36 1
37 1
38 1
39 1
40 1

4
 2
 5
 2
 10
 1
 2
 9
 3
 2

'''input
5
1 2
2 1
5 10
10 9
20 1	
'''
from sys import stdin,stdout
import bisect
I = lambda: stdin.readline().strip()
read =   lambda: map(int,stdin.readline().split())

n = int(I())
arr = [tuple(read()) for i in range(n)]
arr.sort()
# print(arr)
last_occupied = -10**9
count = 0
n1 = n-1
for ind,i in enumerate(arr):
	x,r = i
	if x-r>last_occupied:
		last_occupied = x
		count += 1
	elif ind==n1 or arr[ind+1][0]>x+r:
		last_occupied = x+r
		count += 1
	else:
		last_occupied = x

print(count)
quit()

#180C
s = I()
min_so_far = track = sum([i.upper()==i for i in s])#count no of upper case 

for i in s:
	track += [-1,1][i.lower()==i]# if we split at char i into (upper ,lower)
	min_so_far = min(min_so_far,track)
print(min_so_far)

quit()
len_s = len(s)
tempu,templ = 0,0
dpu,dpl = [0]*(len_s+1), [0]*(len_s+1)
for ind,i in enumerate(s):
	if i==i.lower():
		tempu+=1
	dpu[ind+1] = tempu
for i in range(len(s)-1,-1,-1):
	if s[i]==s[i].upper():
		templ+=1
	dpl[i] = templ
# print(dpl,dpu)

print(min([dpu[x]+dpl[x+1] for x in range(len_s)]))
quit()
#550A
s = I()
x = s.find('AB')
if x>-1:
	if s[x+2:].find('BA')>-1:
		print('YES')
		quit()
x = s.find('BA')
# print(x,s[x+2:].find('AB'))
if x>-1:
	if s[x+2:].find('AB')>-1:
		print('YES')
		quit()
print('NO')
quit()
#987C
n = int(I())
s = tuple(read())
c = tuple(read())

INF = 10**9
min_so_far = INF
for j in range(n):
	m1 = min([INF]+[c[i] for i in range(j) if s[i]<s[j]])
	m2 = min([INF]+[c[i] for i in range(j+1,n) if s[i]>s[j]])
	min_so_far = min(min_so_far,c[j]+m1+m2)
print(min_so_far if min_so_far<INF else -1)

quit() 
#289B
n,m,d = read()
arr = []
for i in range(n):
	arr.extend(list(read()))

base = arr[0]
for i in arr:
	if (i-base)%d:
		print(-1)
		quit()

arr.sort()
s = n*m
Sum = 0
dev1 = dev2 = 0
if s%2:
	median = arr[s//2]
	for i in arr:
		Sum+=abs(i-median)
else:
	m1,m2 = arr[(s//2)-1],arr[s//2]
	Sum2 = 0
	for i in arr:
		Sum+=abs(i-m1)
		Sum2+=abs(i-m2)
	Sum = min(Sum,Sum2)
print(Sum//d)
