#include <bits/stdc++.h>
using namespace std;
const int MAXN = 405;
int N, K;
vector<pair<int, int> > E[MAXN];
vector<pair<int, int> > adj[MAXN];
int dp[MAXN][MAXN];
vector<pair<int, int> > C[MAXN][MAXN];
vector<int> bad[MAXN][MAXN];
int temp[MAXN][MAXN];
int prv[MAXN][MAXN];
vector<int> ans;
void dfs1(int cur, int prev) {
  for (int i = 0; i < E[cur].size(); i++) {
    int next = E[cur][i].first;
    if (next == prev) {
      bad[cur][K].push_back(E[cur][i].second);
      continue;
    }
    adj[cur].push_back(make_pair(next, E[cur][i].second));
    dfs1(next, cur);
  }
}
void dfs2(int cur) {
  for (int i = 0; i < adj[cur].size(); i++) dfs2(adj[cur][i].first);
  temp[0][1] = 0;
  for (int i = 2; i <= K; i++) temp[0][i] = N;
  for (int i = 1; i <= adj[cur].size(); i++) {
    int next = adj[cur][i - 1].first;
    temp[i][1] = temp[i - 1][1] + 1;
    prv[i][1] = 1;
    for (int j = 2; j <= K; j++) {
      temp[i][j] = temp[i - 1][j] + 1;
      prv[i][j] = j;
      for (int k = 1; k < j; k++) {
        if (temp[i][j] > temp[i - 1][j - k] + dp[next][k]) {
          temp[i][j] = temp[i - 1][j - k] + dp[next][k];
          prv[i][j] = j - k;
        }
      }
    }
  }
  for (int i = 1; i <= K; i++) {
    dp[cur][i] = temp[adj[cur].size()][i];
    for (int j = adj[cur].size(), k = i; j >= 1; j--) {
      if (k - prv[j][k] > 0)
        C[cur][i].push_back(make_pair(adj[cur][j - 1].first, k - prv[j][k]));
      else
        bad[cur][i].push_back(adj[cur][j - 1].second);
      k = prv[j][k];
    }
  }
}
void dfs3(int cur, int sz) {
  for (int i = 0; i < bad[cur][sz].size(); i++) ans.push_back(bad[cur][sz][i]);
  for (int i = 0; i < C[cur][sz].size(); i++)
    dfs3(C[cur][sz][i].first, C[cur][sz][i].second);
}
int main() {
  ios::sync_with_stdio(0);
  cin >> N >> K;
  for (int i = 0, a, b; i < N - 1; i++) {
    cin >> a >> b;
    a--, b--;
    E[a].push_back(make_pair(b, i));
    E[b].push_back(make_pair(a, i));
  }
  dfs1(0, -1);
  dfs2(0);
  for (int i = 1; i < N; i++)
    for (int j = 1; j <= K; j++) dp[i][j]++;
  int best = 0;
  for (int i = 1; i < N; i++)
    if (dp[best][K] > dp[i][K]) best = i;
  dfs3(best, K);
  cout << ans.size() << "\n";
  for (int i = 0; i < ans.size(); i++) cout << ans[i] + 1 << " ";
  return 0;
}
