#include <bits/stdc++.h>
#define int long long
#define max max<int>
using namespace std;
constexpr int N = 1e5 + 5;
int n, k;
vector<int> children[N];
bool hasparent[N] = {false};
int tree[N] = {0};
int get(int i) {
int s = 0;
for (; i; i -= i & -i) {
s += tree[i];
}
return s;
}
void update(int i, int x) {
for (; i <= n; i += i & -i) {
tree[i] += x;
}
}
int timer;
int res;
void dfs(int u)
{
++timer;
update(u, 1);
int lo = max(u - k - 1, 0);
int hi = min(u + k, n);
res -= get(hi) - get(lo);
for (int v : children[u]) {
dfs(v);
}
res += get(hi) - get(lo);
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
// freopen("input.txt", "r", stdin);
cin >> n >> k;
for (int e = 1; e < n; e++) {
int u, v;
cin >> u >> v;
children[u].push_back(v);
hasparent[v] = true;
}
timer = 0;
res = 0;
for (int r = 1; r <= n; r++) {
if (hasparent[r]) continue;
dfs(r);
break;
}
cout << res;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIG1heCBtYXg8aW50Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3RleHByIGludCBOID0gMWU1ICsgNTsKCmludCBuLCBrOwp2ZWN0b3I8aW50PiBjaGlsZHJlbltOXTsKYm9vbCBoYXNwYXJlbnRbTl0gPSB7ZmFsc2V9OwppbnQgdHJlZVtOXSA9IHswfTsKCmludCBnZXQoaW50IGkpIHsKICAgIGludCBzID0gMDsKICAgIGZvciAoOyBpOyBpIC09IGkgJiAtaSkgewogICAgICAgIHMgKz0gdHJlZVtpXTsKICAgIH0KICAgIHJldHVybiBzOwp9Cgp2b2lkIHVwZGF0ZShpbnQgaSwgaW50IHgpIHsKICAgIGZvciAoOyBpIDw9IG47IGkgKz0gaSAmIC1pKSB7CiAgICAgICAgdHJlZVtpXSArPSB4OwogICAgfQp9CgppbnQgdGltZXI7CmludCByZXM7Cgp2b2lkIGRmcyhpbnQgdSkKewogICAgKyt0aW1lcjsKICAgIHVwZGF0ZSh1LCAxKTsKCiAgICBpbnQgbG8gPSBtYXgodSAtIGsgLSAxLCAwKTsKICAgIGludCBoaSA9IG1pbih1ICsgaywgbik7CiAgICByZXMgLT0gZ2V0KGhpKSAtIGdldChsbyk7CgogICAgZm9yIChpbnQgdiA6IGNoaWxkcmVuW3VdKSB7CiAgICAgICAgZGZzKHYpOwogICAgfQoKICAgIHJlcyArPSBnZXQoaGkpIC0gZ2V0KGxvKTsKfQoKc2lnbmVkIG1haW4oKQp7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgY291dC50aWUoTlVMTCk7CgogICAgLy8gZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CgogICAgY2luID4+IG4gPj4gazsKCiAgICBmb3IgKGludCBlID0gMTsgZSA8IG47IGUrKykgewogICAgICAgIGludCB1LCB2OwogICAgICAgIGNpbiA+PiB1ID4+IHY7CgogICAgICAgIGNoaWxkcmVuW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBoYXNwYXJlbnRbdl0gPSB0cnVlOwogICAgfQoKICAgIHRpbWVyID0gMDsKICAgIHJlcyA9IDA7CiAgICBmb3IgKGludCByID0gMTsgciA8PSBuOyByKyspIHsKICAgICAgICBpZiAoaGFzcGFyZW50W3JdKSBjb250aW51ZTsKICAgICAgICBkZnMocik7CiAgICAgICAgYnJlYWs7CiAgICB9CgogICAgY291dCA8PCByZXM7CgogICAgcmV0dXJuIDA7Cn0=