#include<iostream>
#include<vector>
#include<queue>
using namespace std;
int n,d,tmp,step=-1,flag=1,ans;
bool bj;
queue<int>bfs;
struct s{
vector<int> c;
int f;
}num[100009];
int main(){
cin>>n>>d;
for(int i=1;i<n;++i){
cin>>tmp;
cin>>ans;
num[tmp].c.push_back(ans);
}
ans=0;
bfs.push(1);
while(!bfs.empty()){
if(bfs.front()==flag){
++step;
bj=1;
}
tmp=bfs.front();
bfs.pop();
++ans;
for(int i=0;i<num[tmp].c.size();++i){
bfs.push(num[tmp].c[i]);
}
if(bj){
bj=0;
flag=bfs.back();
}
if(step==d) break;
}
cout<<ans-1;
}