#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10, MSQ = 1010, SQ = 10, inf = 2e9;
pair<pair<int, int>, int> p[maxn];
map<int, vector<int> > mp;
vector<int> vec, vec2;
int n, k, sm[maxn], l[maxn], r[maxn];
long long ans;
void add(int ind, int val) {
  while (ind < maxn) {
    sm[ind] += val;
    ind += (ind & -ind);
  }
}
int ask(int ind) {
  int ans = 0;
  while (ind > 0) {
    ans += sm[ind];
    ind -= (ind & -ind);
  }
  return ans;
}
void Add(int id, int val) {
  if (val == 1) ans += ask(r[id]) - ask(l[id]);
  add(id + 1, val);
}
bool CMP(int a, int b) { return p[a].first.second > p[b].first.second; }
void Add(vector<int>& vec) {
  sort(vec.begin(), vec.end(), CMP);
  for (int id : vec) Add(id, 1);
  for (int id : vec) Add(id, -1);
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%d%d%d", &p[i].first.first, &p[i].first.second, &p[i].second);
    vec.push_back(p[i].second);
  }
  sort(p, p + n);
  for (int i = 0; i < n; i++) {
    pair<pair<int, int>, int> PP1 = {{p[i].first.first - p[i].first.second, -1},
                                     -1},
                              PP2 = {
                                  {p[i].first.first + p[i].first.second, inf},
                                  inf};
    l[i] = lower_bound(p, p + n, PP1) - p;
    r[i] = upper_bound(p, p + n, PP2) - p;
  }
  for (int i = 0; i < n; i++) {
    mp[p[i].second].push_back(i);
  }
  sort(vec.begin(), vec.end());
  vec.resize(unique(vec.begin(), vec.end()) - vec.begin());
  for (int i = 0; i < int((vec).size()); i++) {
    long long bf = ans;
    Add(mp[vec[i]]);
    vec2.push_back(ans - bf);
  }
  for (int i = 0; i < int((vec).size()); i++) {
    for (int j = i + 1; j < int((vec).size()) && vec[j] - vec[i] <= k; j++) {
      vector<int> vv(int((mp[vec[i]]).size()) + int((mp[vec[j]]).size())),
          v1 = mp[vec[i]], v2 = mp[vec[j]];
      merge(v1.begin(), v1.end(), v2.begin(), v2.end(), vv.begin());
      Add(vv);
      ans -= vec2[i] + vec2[j];
    }
  }
  printf("%lld\n", ans);
}
