#include <bits/stdc++.h>
using namespace std;
template <class T>
bool umin(T& a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool umax(T& a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
int dp[200009];
pair<int, int> x[200009];
int ok(int i, int j) {
  if (x[i].first - x[i].second >= x[j].first + x[j].second) return 1;
  return 0;
}
bool cmp(pair<int, int> i, pair<int, int> j) {
  return (i.first + i.second < j.first + j.second);
}
int main() {
  int a;
  scanf("%d", &a);
  for (int i = 1; i <= a; i++) scanf("%d%d", &x[i].first, &x[i].second);
  sort(x + 1, x + a + 1, cmp);
  int xx = -1000000007, yy = -1000000007, ans = 0;
  for (int i = 1; i <= a; i++) {
    if (x[i].first - x[i].second >= xx + yy) {
      ans++;
      xx = x[i].first;
      yy = x[i].second;
    }
    dp[i] = ans;
  }
  cout << *max_element(dp + 1, dp + a + 1) << endl;
  return 0;
}
