#include <bits/stdc++.h>
using namespace std;
const int N = 402;
int n, k, dp[N][N];
vector<pair<int, int> > g[N], path[N][N];
bool have[N];
void solve(int i, int p) {
  dp[i][1] = ((int)(g[i]).size()) - (i > 1);
  for (int k = 2; k <= n; ++k) dp[i][k] = 1000000000;
  for (pair<int, int> j : g[i])
    if (j.first != p) {
      solve(j.first, i);
      for (int k = n; k >= 1; --k)
        if (dp[i][k] < 1000000000)
          for (int l = k == 1; l <= n - k; ++l)
            if (dp[i][l + k] > dp[i][k] + dp[j.first][l] + !l - (l > 0)) {
              dp[i][l + k] = dp[i][k] + dp[j.first][l] + !l - (l > 0);
              path[i][l + k] = path[i][k];
              if (l > 0) path[i][l + k].push_back({j.first, l});
            }
    }
}
void color(int i, int k) {
  have[i] = true;
  for (pair<int, int> j : path[i][k]) color(j.first, j.second);
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n - 1; ++i) {
    int x, y;
    scanf("%d%d", &x, &y);
    g[x].push_back({y, i});
    g[y].push_back({x, i});
  }
  solve(1, 1);
  for (int i = 2; i <= n; ++i)
    for (int k = 1; k <= n; ++k) ++dp[i][k];
  int ans = 1000000000, root = -1;
  for (int i = 1; i <= n; ++i)
    if (ans > dp[i][k]) ans = dp[i][k], root = i;
  cout << (ans) << endl;
  color(root, k);
  for (int i = 1; i <= n; ++i)
    if (have[i])
      for (pair<int, int> j : g[i])
        if (!have[j.first]) printf("%d ", j.second);
}
