#include <bits/stdc++.h>
using namespace std;
const int maxn = 300300;
int d1[maxn], d2[maxn];
map<pair<int, int>, int> mp;
int main() {
  int n, p;
  while (scanf("%d%d", &n, &p) != EOF) {
    memset(d1, 0, sizeof(d1));
    memset(d2, 0, sizeof(d2));
    mp.clear();
    for (int i = 0; i < n; i++) {
      int u, v;
      scanf("%d%d", &u, &v);
      if (u > v) swap(u, v);
      u--, v--;
      mp[make_pair(u, v)]++;
      d1[u]++;
      d2[u]++;
      d1[v]++;
      d2[v]++;
    }
    sort(d1, d1 + n);
    long long ans = 1ll * n * (n - 1) / 2;
    for (int i = 1; i < n; i++) {
      if (p - d1[i] > 0) {
        int now = lower_bound(d1, d1 + i, p - d1[i]) - d1;
        ans -= now;
      }
    }
    map<pair<int, int>, int>::iterator it;
    for (it = mp.begin(); it != mp.end(); it++) {
      pair<int, int> tmp = it->first;
      int u = tmp.first, v = tmp.second;
      if (d2[u] + d2[v] >= p && d2[u] + d2[v] - mp[tmp] < p) ans--;
    }
    printf("%I64d\n", ans);
  }
}
