#include using namespace std; int n, a, b, d, ans; vector g[100005]; bool vis[100005]; void dfs(int now, int dis) { vis[now] = true; if (dis == d) { return; } for (int i = 0; i < g[now].size(); i++) { if (!vis[g[now][i]]) { ans++; dfs(g[now][i], dis + 1); } } return; } int main() { memset(vis, 0x00, sizeof(vis)); cin >> n >> d; for (int i = 1; i < n; i++) { cin >> a >> b; g[a].push_back(b); g[b].push_back(a); } dfs(1, 0); cout << ans << endl; return 0; }