#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 200005;
int n, k, ans;
vector<int> adj[N];
map<int,int>* dfs(int u, int p) {
auto *mp = new map<int,int>();
(*mp)[0] = 1;
for (int v : adj[u]) {
if (v == p) continue;
auto *child = dfs(v, u);
// luôn merge nhỏ vào lớn
if (mp->size() < child->size())
swap(mp, child);
// đếm đáp án
for (auto [d, f] : *child) {
int need = k - d - 1;
if (mp->count(need))
ans += 1LL * f * (*mp)[need];
}
// merge
for (auto [d, f] : *child) {
(*mp)[d + 1] += f;
}
}
return mp;
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> k;
for (int i = 1; i < n; i++) {
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
dfs(1, 0);
cout << ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGludCBsb25nIGxvbmcKCmNvbnN0IGludCBOID0gMjAwMDA1OwoKaW50IG4sIGssIGFuczsKdmVjdG9yPGludD4gYWRqW05dOwoKbWFwPGludCxpbnQ+KiBkZnMoaW50IHUsIGludCBwKSB7CgogICAgYXV0byAqbXAgPSBuZXcgbWFwPGludCxpbnQ+KCk7CiAgICAoKm1wKVswXSA9IDE7CgogICAgZm9yIChpbnQgdiA6IGFkalt1XSkgewoKICAgICAgICBpZiAodiA9PSBwKSBjb250aW51ZTsKCiAgICAgICAgYXV0byAqY2hpbGQgPSBkZnModiwgdSk7CgogICAgICAgIC8vIGx1w7RuIG1lcmdlIG5o4buPIHbDoG8gbOG7m24KICAgICAgICBpZiAobXAtPnNpemUoKSA8IGNoaWxkLT5zaXplKCkpCiAgICAgICAgICAgIHN3YXAobXAsIGNoaWxkKTsKCiAgICAgICAgLy8gxJHhur9tIMSRw6FwIMOhbgogICAgICAgIGZvciAoYXV0byBbZCwgZl0gOiAqY2hpbGQpIHsKCiAgICAgICAgICAgIGludCBuZWVkID0gayAtIGQgLSAxOwoKICAgICAgICAgICAgaWYgKG1wLT5jb3VudChuZWVkKSkKICAgICAgICAgICAgICAgIGFucyArPSAxTEwgKiBmICogKCptcClbbmVlZF07CiAgICAgICAgfQoKICAgICAgICAvLyBtZXJnZQogICAgICAgIGZvciAoYXV0byBbZCwgZl0gOiAqY2hpbGQpIHsKICAgICAgICAgICAgKCptcClbZCArIDFdICs9IGY7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBtcDsKfQoKc2lnbmVkIG1haW4oKSB7CgogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBjaW4gPj4gbiA+PiBrOwoKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgaW50IHUsIHY7CiAgICAgICAgY2luID4+IHUgPj4gdjsKCiAgICAgICAgYWRqW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHUpOwogICAgfQoKICAgIGRmcygxLCAwKTsKCiAgICBjb3V0IDw8IGFuczsKfQ==