#include <bits/stdc++.h>
using namespace std;
const int Maxn = 300000;
long long n, x[Maxn], w[Maxn], Index[Maxn], nx[Maxn];
set<pair<long long, long long> > poi, xx;
set<pair<long long, long long> > u;
void input() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> x[i] >> w[i];
    xx.insert(make_pair(x[i], i));
    poi.insert(make_pair(x[i] - w[i], i));
  }
}
void solve() {
  long long k = 0;
  for (auto c : poi) {
    Index[c.second] = k;
    k++;
  }
  for (auto c : xx) {
    long long ind = c.second;
    poi.erase(make_pair(x[ind] - w[ind], ind));
    long long sum = x[ind] + w[ind];
    auto limIt = poi.lower_bound(make_pair(sum, 0));
    if (limIt != poi.end()) {
      auto lim = *limIt;
      nx[Index[ind]] = Index[lim.second];
      u.insert(make_pair(Index[lim.second], Index[ind]));
    } else
      nx[Index[ind]] = -1;
  }
  int ans = 1, last = 0;
  while (((int)u.size())) {
    auto c = (*u.begin()).first;
    ans++;
    for (; last < c; last++)
      if (nx[last] >= 0) u.erase(make_pair(nx[last], last));
  }
  cout << ans << endl;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie();
  input();
  solve();
  return 0;
}
