#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200005, INF = 1 << 31;
struct A {
  int x, w;
} a[MAXN];
int b[MAXN], c[MAXN], n, d[MAXN], f[MAXN];
bool cmp(const A &x, const A &y) { return x.x < y.x; }
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) scanf("%d%d", &a[i].x, &a[i].w);
  sort(a, a + n, cmp);
  memset(f, 0, sizeof f);
  memset(d, 0x7f, sizeof d);
  for (int i = 0; i < n; ++i) {
    b[i] = a[i].x - a[i].w;
    c[i] = a[i].x + a[i].w;
  }
  int ans = 0;
  for (int i = 0; i < n; ++i) {
    int t = upper_bound(d + 1, d + ans + 1, b[i]) - d - 1;
    d[t + 1] = min(c[i], d[t + 1]);
    if (ans == t) ans = t + 1;
  }
  printf("%d\n", ans);
  return 0;
}
