#include<cstdio>
#include<vector>
using namespace std;
int n,k,used[5005],d[5005],pr[5005],br,ans,cr1,cr2;
vector<int> v[5005];
void read()
{
    int i,x,y;
    scanf("%d%d",&n,&k);
    ans=n;
    pr[1]=-1;
    for(i=2;i<=n;i++)
    {
        scanf("%d%d",&x,&y);
        pr[i]=x;
        v[x].push_back(i);
        if(y)
        {
            d[i]=1;
            br++;
            ans--;
        }
    }
}
void dfs(int x)
{
    int i,sz;
    cr1++;
    sz=v[x].size();
    for(i=0;i<sz;i++)
    if(!d[v[x][i]])dfs(v[x][i]);
    else cr2++;
}
void solve()
{
    int i,x,y,z;
    double mx,eps=1.0000001;
    while(br>k)
    {
        mx=0;
        for(i=1;i<=n;i++)
        if(d[i]==1)
        {
            cr1=cr2=0;
            dfs(pr[i]);
            if((mx<(double(cr2)/double(cr1)+eps)))
            {
                mx=double(cr2)/double(cr1)+eps;
                x=cr1;
                y=cr2;
                z=i;
            }
        }
        br++;
        br-=y;
        ans-=x;
        d[pr[z]]=1;
        //printf("%d %d %d\n",mx,x,y);
    }
    printf("%d\n",ans);
}
int main()
{
    read();
    solve();
}
/*
7 2
1 0
1 0
2 0
2 1
2 1
3 1
*/