#include <bits/stdc++.h>
using namespace std;
#define get getchar()
#define ll long long
ll tot,h[500005];
ll dep[200005],size[200005],val[200005];
int read()
{
int t=0;char ch=get;
while (ch<'0'||ch>'9') ch=get;
while (ch>='0'&&ch<='9') t=t*10+ch-'0',ch=get;
return t;
}
struct aaa
{
int ne,to;
}e[1000005];
void add(int x,int y)
{
e[++tot].ne=h[x];e[tot].to=y;h[x]=tot;
}
void dfs(int u,int fa)
{
dep[u]=dep[fa]+1;
for (int i=h[u];i;i=e[i].ne)
{
int v=e[i].to;
if (v==fa) continue;
dfs(v,u);
size[u]+=size[v];
}
size[u]+=1;
val[u]=dep[u]-size[u];
}
bool cmp(ll a,ll b)
{
return a>=b;
}
ll ans=0;
int main()
{
int n=read(),k=read();
for (int i=1;i<=n-1;i++)
{
int aa=read(),bb=read();
add(aa,bb);
add(bb,aa);
}
dfs(1,0);
sort(val+1,val+n+1,cmp);
for (int i=1;i<=k;i++) ans+=val[i];
cout<<ans;
return 0;
}