#include <bits/stdc++.h>
using namespace std;
int n,p,zi[300],ans;
vector<int> g[200];
int qz(int num){
int sum=0;
for(int i=0;i<g[num].size();i++){
sum+=qz(g[num][i]);
}
return zi[num]+=sum;
}
struct youbiyaoma{
int bh;
int rz;
}fir[200];
bool cmp(youbiyaoma x,youbiyaoma y){
return x.rz<y.rz;
}
queue<int> q;int cnt,bian[200];
void sou(){
q.push(1);
while(!q.empty()){
int k=q.front();
q.pop();
cnt=0;
if(zi[k]<=p){
ans++;
p-=zi[k];
if(p==0) return ;
}
else if(zi[k]>p){
for(int i=0;i<g[k].size();i++){
fir[++cnt].rz=zi[g[k][i]];
fir[cnt].bh=g[k][i];
}
sort(fir+1,fir+cnt+1,cmp);
for(int i=cnt;i>=1;i--){
q.push(fir[i].bh);
}
}
}
}
int main(){
cin>>n>>p;
p=n-p;
for(int i=1;i<n;i++){
int fa,ch;
zi[i]=1;
cin>>fa>>ch;
g[fa].push_back(ch);
}
zi[n]=1;
qz(1);
sou();
cout<<ans;
return 0;
}