#include <bits/stdc++.h>
using namespace std;
struct Y {
  double x, a;
};
Y A[100001];
int f(Y u, Y v) { return u.x < v.x; }
int main(int argc, char *argv[]) {
  long long ans = 0;
  int n, t, i;
  double K;
  cin >> n >> t;
  for (i = 0; i <= n - 1; i++) {
    cin >> A[i].x >> A[i].a;
    A[i].x += 1000;
  }
  if (n == 1) {
    cout << 2 << endl;
    return 0;
  }
  sort(A, A + n, f);
  for (i = 0; i <= n - 2; i++) {
    K = (A[i + 1].x - A[i + 1].a / 2) - (A[i].x + A[i].a / 2);
    if (K == t)
      ans += 1;
    else if (K > t)
      ans += 2;
    else {
    }
  }
  cout << ans + 2 << endl;
  return 0;
}
