#include <bits/stdc++.h>
using namespace std;
int record[300000];
int main() {
  map<pair<int, int>, int> m;
  memset(record, 0, sizeof(record));
  int n, p;
  scanf("%d%d", &n, &p);
  map<pair<int, int>, int>::iterator iter;
  for (int i = 0; i < n; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    record[a]++;
    record[b]++;
    if (a > b)
      m[make_pair(b, a)]++;
    else
      m[make_pair(a, b)]++;
  }
  long long ans = 0;
  for (iter = m.begin(); iter != m.end(); iter++) {
    int x = (iter->first).first;
    int y = (iter->first).second;
    if (record[x] + record[y] - iter->second < p && record[x] + record[y] >= p)
      ans--;
  }
  sort(record + 1, record + n + 1);
  int ed = n;
  for (int st = 1; st <= n; st++) {
    while (record[st] + record[ed] >= p && ed > st) ed--;
    ans += min(n - ed, n - st);
  }
  printf("%lld\n", ans);
  return 0;
}
