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

n = int(input())

trees = []
heights = []

for i in range (n):
    a, b = [int(i) for i in input().split()]

    trees.append(a)
    heights.append(b)

if n <= 2:
    print(n)

else:

    dp = [[[0, 0] for i in range (2)] for j in range (n)]

    #   L   [left_most, score]
    #   R   []
    #       0   1   2   3   4   5   .   .   .   n

    for i in range (n):
        # print(i)
        
        if i == 0:
            dp[i][0] = [trees[i], 1]
            if trees[i+1]-trees[i] < heights[i]:
                dp[i][1] = [trees[i]+heights[i], 1]

        elif i == n-1:
            dp[i][0] = [trees[i], max(dp[i-1][0][1] + (trees[i]-trees[i-1]>heights[i]) , dp[i-1][1][1] + (trees[i]-dp[i-1][1][0]>heights[i]))]
            dp[i][1] = [trees[i]+heights[i], max(dp[i-1][0][1], dp[i-1][1][1])+1]
            

        else:
            left = dp[i-1][0][0]
            right = dp[i-1][1][0]
            left_score = dp[i-1][0][1]
            right_score = dp[i-1][1][1]

            #LL
            ll = [trees[i], left_score + (trees[i]-left > heights[i])]
            #RL
            rl = [trees[i], right_score + (trees[i]-right > heights[i])]
            #LR
            lr = [trees[i]+heights[i]*(trees[i+1]-trees[i]>heights[i]), left_score + (trees[i+1]-trees[i]>heights[i])]
            #RR
            rr = [trees[i]+heights[i]*(trees[i+1]-trees[i]>heights[i]), right_score + (trees[i+1]-trees[i]>heights[i])]

            if ll[1] == rl[1]:
                dp[i][0] = [min(ll[0], rl[0]), ll[1]]

            else:
                dp[i][0] = ll if (ll[1] > rl[1]) else rl

            if lr[1] == rr[1]:
                dp[i][1] = [min(lr[0], rr[0]), lr[1]]
            
            else:
                dp[i][1] = lr if (lr[1]>rr[1]) else rr

    print(max(dp[n-1][0][1], dp[n-1][1][1]))
        # print(dp)