#include <bits/stdc++.h>
using namespace std;
const int MAXN = 400 + 7;
const int INF = 1000 * 1000 * 1000;
vector<pair<int, int> > g[MAXN];
int dp[MAXN][MAXN];
vector<int> pr[MAXN][MAXN];
int pe[MAXN];
int pp[MAXN];
int sz[MAXN];
void cdp(int u) {
  sz[u] = 1;
  for (int i = 0; i < MAXN; i++) dp[u][i] = INF;
  dp[u][1] = 1;
  dp[u][0] = 1;
  for (int i = 0; i < MAXN; i++) pr[u][i].resize(g[u].size(), -1);
  for (int i = 0; i < g[u].size(); i++) {
    int v = g[u][i].first;
    if (v == pp[u]) continue;
    pe[v] = g[u][i].second;
    pp[v] = u;
    cdp(v);
    for (int k = sz[u]; k >= 1; k--) {
      for (int j = 1; j < sz[v] + 1; j++) {
        if (k + j >= MAXN) continue;
        if (dp[u][k + j] > dp[u][k] + dp[v][j] - 1) {
          dp[u][k + j] = dp[u][k] + dp[v][j] - 1;
          pr[u][k + j][i] = j;
        }
      }
      dp[u][k]++;
    }
    sz[u] += sz[v];
  }
}
vector<int> fans;
void dfs(int u, int x) {
  if (!x) {
    fans.push_back(pe[u]);
    return;
  }
  int need[MAXN];
  memset(need, 0, sizeof need);
  int tof = g[u].size() - 1;
  while (x > 1) {
    while (pr[u][x][tof] == -1) tof--;
    int p = pr[u][x][tof];
    need[tof] = p;
    x -= p;
    tof--;
  }
  for (int i = 0; i < g[u].size(); i++) {
    int v = g[u][i].first;
    if (v == pp[u]) continue;
    dfs(v, need[i]);
  }
}
int main() {
  ios::sync_with_stdio(false);
  int n, k;
  cin >> n >> k;
  for (int i = 1; i < n; i++) {
    int u, v;
    cin >> u >> v;
    u--;
    v--;
    g[u].push_back(make_pair(v, i));
    g[v].push_back(make_pair(u, i));
  }
  cdp(0);
  int ans = INF;
  int rt = 0;
  for (int i = 0; i < n; i++) {
    if (ans > dp[i][k] + bool(i)) {
      ans = dp[i][k] + bool(i);
      rt = i;
    }
  }
  if (rt) fans.push_back(pe[rt]);
  dfs(rt, k);
  if (fans.size() != ans - 1) assert(0);
  cout << fans.size() << endl;
  for (int i = 0; i < fans.size(); i++) cout << fans[i] << ' ';
  return 0;
}
