#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
#define nmax 1024
#define FOR(i,s,d) for(i=(s);i<(d);++i)
#define sz size()
#define pb push_back
#define pt(i) (1<<(i))
vector <int> G[nmax];
int n,k,sol,A[nmax],g[nmax],cod[nmax],Q,sf,bal[nmax];
int doit(int x)
{
int i,j,ii,t=0;
sf=-1;
FOR(i,0,n)
{
g[i]=G[i].sz;
bal[i]=0;
A[i]=x;
if(g[i]<=1)
bal[i]=2,cod[++sf]=i;
}
FOR(Q,0,sf+1)
{
i=cod[Q];
if(A[i]==0)
t++,A[i]=2*x+1,bal[i]=1;
FOR(ii,0,G[i].sz)
{
j=G[i][ii];
g[j]--;
if(g[j]<=1&&!bal[j])
cod[++sf]=j,bal[j]=2;
A[j]=min(A[j],A[i]-1);
}
}
FOR(i,0,n)
{
if(k<t)
return 0;
if(k==t)
return 1;
if(bal[i]!=1)
bal[i]=1,t++;
}
}
int main()
{
freopen("salvare.in","r",stdin);
freopen("salvare.out","w",stdout);
scanf("%d",&n);
scanf("%d",&k);
int ii,i,j;
FOR(ii,1,n)
{
scanf("%d %d",&i,&j);
i--,j--;
G[i].pb(j);
G[j].pb(i);
}
for(i=10,sol=0;i>=0;--i)
if(!doit(sol+pt(i)))
sol+=pt(i);
doit(sol+1);
printf("%d\n",sol+1);
FOR(i,0,n)
if(bal[i]==1)
printf("%d ",i+1);
printf("\n");
return 0;
}