#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:20000000")
using namespace std;
int ri() {
  int x;
  scanf("%d", &x);
  return x;
}
long long rll() {
  long long x;
  scanf("%lld", &x);
  return x;
}
int tree[4 * 200500];
void change(int v, int l, int r, int pos, int value) {
  if (l == r && l == pos) {
    tree[v] = value;
    return;
  }
  int mid = (l + r) >> 1;
  if (pos <= mid)
    change(2 * v, l, mid, pos, value);
  else
    change(2 * v + 1, mid + 1, r, pos, value);
  tree[v] = max(tree[2 * v], tree[2 * v + 1]);
}
int get_max(int v, int l, int r, int L, int R) {
  if (L == l && r == R) return tree[v];
  int mid = (L + R) >> 1;
  if (r <= mid)
    return get_max(2 * v, l, r, L, mid);
  else if (l > mid)
    return get_max(2 * v + 1, l, r, mid + 1, R);
  else
    return max(get_max(2 * v, l, mid, L, mid),
               get_max(2 * v + 1, mid + 1, r, mid + 1, R));
}
int x[200500], w[200500];
bool cmp1(pair<int, int> a, pair<int, int> b) {
  return a.first + a.second < b.first + b.second;
}
bool cmp2(pair<int, int> a, pair<int, int> b) {
  return a.first - a.second < b.first - b.second;
}
void solve() {
  int n = ri();
  for (int i = (int)(1); i <= (int)(n); i++) x[i] = ri(), w[i] = ri();
  vector<pair<int, int> > one(n), two(n);
  for (int i = (int)(1); i <= (int)(n); i++)
    one[i - 1] = make_pair(x[i], w[i]), two[i - 1] = one[i - 1];
  sort(one.begin(), one.end(), cmp1);
  sort(two.begin(), two.end(), cmp2);
  map<int, int> index;
  for (int i = 0; i < n; i++) index[one[i].first] = i;
  for (int i = 0; i < n; i++) {
    long long x = two[i].first;
    long long w = two[i].second;
    x -= w;
    int l = 0, r = n;
    while (l + 1 < r) {
      int mid = (l + r) >> 1;
      if ((long long)one[mid].first + (long long)one[mid].second <= x)
        l = mid;
      else
        r = mid;
    }
    int y = 0;
    if ((long long)one[l].first + (long long)one[l].second <= x)
      y = get_max(1, 0, l, 0, n - 1);
    change(1, 0, n - 1, index[two[i].first], y + 1);
  }
  cout << get_max(1, 0, n - 1, 0, n - 1) << endl;
}
int main() {
  solve();
  return 0;
}
