#include <bits/stdc++.h>
using namespace std;
struct Data {
int l, r;
Data(int l = 0, int r = 1e9): l(l), r(r) {}
bool operator< (const Data &o) const {
if (l == o.l) return r > o.r;
return l < o.l;
}
};
stack<int> s;
vector<Data> v;
int n;
int main() {
ios_base::sync_with_stdio(0), cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) {
int x, e;
cin >> x >> e;
v.emplace_back(x - e, x + e);
}
sort(v.begin(), v.end());
for (int i = 0; i < n; i++) {
if (!s.empty() && s.top() >= v[i].r) continue;
s.push(v[i].r);
}
cout << s.size();
}