#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 1e5 + 5,MaxK = 1e2 + 5;
long long n,k,dp[MaxN][MaxK][2];
vector<long long> a[MaxN];
// 0 là điểm cuối
// 1 là điểm nối
void dfs(long long u, long long par)
{
dp[u][0][0]=1;
for (long long v : a[u])
{
if(v==par) continue;
dfs(v,u);
for (long long t=0; t<=k-2; t++)
{
dp[u][k][1]+=dp[v][t][0]*dp[u][k-1-t][0];
}
for (long long i=1; i<=k; i++)
{
dp[u][i][0]+=dp[v][i-1][0];
}
}
}
void input()
{
cin >> n >> k;
for (long long i=1; i<n; i++)
{
long long u,v;
cin >> u >> v;
a[u].push_back(v);
a[v].push_back(u);
}
}
void solve()
{
dfs(1,-1);
long long ans=0;
for (long long i=1; i<=n; i++)
{
ans+=dp[i][k][0];
ans+=dp[i][k][1];
}
cout << ans;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGxvbmcgbG9uZyBNYXhOID0gMWU1ICsgNSxNYXhLID0gMWUyICsgNTsKCmxvbmcgbG9uZyBuLGssZHBbTWF4Tl1bTWF4S11bMl07CnZlY3Rvcjxsb25nIGxvbmc+IGFbTWF4Tl07CgovLyAwIGzDoCDEkWnhu4NtIGN14buRaQovLyAxIGzDoCDEkWnhu4NtIG7hu5FpCnZvaWQgZGZzKGxvbmcgbG9uZyB1LCBsb25nIGxvbmcgcGFyKQp7CiAgICBkcFt1XVswXVswXT0xOwoKICAgIGZvciAobG9uZyBsb25nIHYgOiBhW3VdKQogICAgewogICAgICAgIGlmKHY9PXBhcikgY29udGludWU7CgogICAgICAgIGRmcyh2LHUpOwoKICAgICAgICBmb3IgKGxvbmcgbG9uZyB0PTA7IHQ8PWstMjsgdCsrKQogICAgICAgIHsKICAgICAgICAgICAgZHBbdV1ba11bMV0rPWRwW3ZdW3RdWzBdKmRwW3VdW2stMS10XVswXTsKICAgICAgICB9CgogICAgICAgIGZvciAobG9uZyBsb25nIGk9MTsgaTw9azsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgZHBbdV1baV1bMF0rPWRwW3ZdW2ktMV1bMF07CiAgICAgICAgfQogICAgfQp9Cgp2b2lkIGlucHV0KCkKewogICAgY2luID4+IG4gPj4gazsKCiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8bjsgaSsrKQogICAgewogICAgICAgIGxvbmcgbG9uZyB1LHY7CiAgICAgICAgY2luID4+IHUgPj4gdjsKCiAgICAgICAgYVt1XS5wdXNoX2JhY2sodik7CiAgICAgICAgYVt2XS5wdXNoX2JhY2sodSk7CiAgICB9Cn0KCnZvaWQgc29sdmUoKQp7CiAgICBkZnMoMSwtMSk7CgogICAgbG9uZyBsb25nIGFucz0wOwoKICAgIGZvciAobG9uZyBsb25nIGk9MTsgaTw9bjsgaSsrKQogICAgewogICAgICAgIGFucys9ZHBbaV1ba11bMF07CiAgICAgICAgYW5zKz1kcFtpXVtrXVsxXTsKICAgIH0KCiAgICBjb3V0IDw8IGFuczsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKCiAgICBpbnB1dCgpOwogICAgc29sdmUoKTsKfQo=