#include <bits/stdc++.h>
struct Node {
  int left, right;
  Node(int left, int right) : left(left), right(right) {}
  bool operator<(const Node &node) const { return (right < node.right); }
};
int main() {
  for (int n; ~scanf("%d", &n);) {
    std::vector<Node> nodes;
    for (int i = 0; i < n; ++i) {
      int x, w;
      scanf("%d %d", &x, &w);
      nodes.push_back(Node(x - w, x + w - 1));
    }
    std::sort(nodes.begin(), nodes.end());
    int ans = 0;
    int rightest = -2147483640;
    for (int i = 0; i < n; ++i) {
      if (nodes[i].left <= rightest) {
        continue;
      }
      rightest = nodes[i].right;
      ++ans;
    }
    printf("%d\n", ans);
  }
  return 0;
}
