#include <bits/stdc++.h>
using namespace std;
const int N = 303030;
int n, p;
int deg[N], cnt[N];
long long sum[N];
map<pair<int, int>, int> con;
vector<int> g[N];
int main() {
  while (~scanf("%d%d", &n, &p)) {
    con.clear();
    for (int i = (0); i < (n + 1); i++) g[i].clear();
    memset(deg, 0, sizeof(deg));
    memset(cnt, 0, sizeof(cnt));
    for (int i = (1); i < (n + 1); i++) {
      int u, v;
      scanf("%d%d", &u, &v);
      g[u].push_back(v);
      g[v].push_back(u);
      ++con[make_pair(u, v)];
      ++con[make_pair(v, u)];
      ++deg[u];
      ++deg[v];
    }
    long long ans = 0;
    for (int i = (1); i < (n + 1); i++) ++cnt[deg[i]];
    sum[n] = cnt[n];
    for (int i = n - 1; ~i; --i) sum[i] = sum[i + 1] + cnt[i];
    for (int i = (1); i < (n + 1); i++) {
      int c = max(0, p - deg[i]);
      int res = sum[c] - (deg[i] >= c);
      sort(g[i].begin(), g[i].end());
      for (int j = (0); j < ((int)g[i].size()); j++) {
        int v = g[i][j];
        if (j > 0 && v == g[i][j - 1]) continue;
        if (deg[v] >= c && deg[v] - con[make_pair(i, v)] < c) --res;
      }
      ans += res;
    }
    printf("%lld\n", ans / 2);
  }
  return 0;
}
