#include <bits/stdc++.h>
using namespace std;
const int maxn = 200010;
const int INF = 2000000000;
int x[maxn], w[maxn];
int N;
struct node {
  int l, r;
  bool operator<(const node &a) const {
    if (l == a.l) return r < a.r;
    return l < a.l;
  }
} a[2 * maxn];
int main() {
  while (scanf("%d", &N) != EOF) {
    int cnt = 0;
    for (int i = 1; i <= N; i++) {
      scanf("%d%d", &x[i], &w[i]);
      a[i].l = x[i] - w[i];
      a[i].r = x[i] + w[i];
    }
    sort(a + 1, a + N + 1);
    int ans = 0;
    node tmp;
    tmp.l = tmp.r = -INF;
    for (int i = 1; i <= N; i++) {
      if (a[i].l >= tmp.r) {
        ans++;
        tmp = a[i];
      } else if (tmp.r > a[i].r)
        tmp = a[i];
    }
    printf("%d\n", ans);
  }
  return 0;
}
