#include<bits/stdc++.h>
using namespace std;
struct node{int l=0,r=0;}g[100001];
int n,d,u,v,vis[100005];
int dfs(int rt,int cur){
int ans=0;
vis[rt]=1;
if (cur>d) return 0;
if (!g[rt].l && !g[rt].l) return 1;
if (g[rt].l && !vis[g[rt].l]) ans+=dfs(g[rt].l,cur+1);
if (g[rt].r && !vis[g[rt].r]) ans+=dfs(g[rt].r,cur+1);
return ans+1;
}
int main(){
cin>>n>>d;
for (int i=1;i<n;i++){
cin>>u>>v;
if (!g[u].l) g[u].l=v;
else g[u].r=v;
if (!g[v].l) g[v].l=u;
else g[v].r=v;
}
vis[1]=1;
cout<<dfs(1,0)-1;
}