#include <bits/stdc++.h>
using namespace std;
void dfs(int u, int pa, vector<pair<int, int>> gr[], int dp[401][401],
         int res[401][401], int k) {
  int i, j, ped;
  dp[u][0] = 1;
  dp[u][1] = 0;
  for (auto vv : gr[u]) {
    int v = vv.first;
    if (v == pa)
      ped = vv.second;
    else {
      dfs(v, u, gr, dp, res, k);
      for (i = k; i; i--) {
        dp[u][i] += 1;
        res[v][i] = 0;
        for (j = i; j; j--)
          if (dp[u][i] >= dp[u][j] + dp[v][i - j]) {
            dp[u][i] = dp[u][j] + dp[v][i - j];
            res[v][i] = i - j;
          }
      }
    }
  }
  if (dp[u][k] + ((pa) ? 1 : 0) <= dp[0][0]) {
    dp[0][0] = dp[u][k] + ((pa) ? 1 : 0);
    dp[0][1] = u;
    dp[0][2] = ped;
    dp[0][3] = pa;
  }
}
void dfs2(int u, int pa, vector<pair<int, int>> gr[], int dp[401][401],
          int res[401][401], int val, vector<int>& out) {
  int left = val;
  for (auto ritr = gr[u].rbegin(); ritr != gr[u].rend(); ritr++) {
    auto vv = *ritr;
    int v = vv.first;
    if (v == pa) continue;
    if (res[v][left]) {
      dfs2(v, u, gr, dp, res, res[v][left], out);
      left -= res[v][left];
    } else
      out.push_back(vv.second);
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  int i, n, k, u, v, maxm = 1;
  cin >> n >> k;
  int dp[401][401] = {};
  int res[401][401] = {};
  vector<pair<int, int>> gr[n + 1];
  for (i = 0; i < 401; i++)
    for (int j = 0; j < 401; j++) dp[i][j] = 1000;
  for (i = 1; i <= n - 1; i++) {
    cin >> u >> v;
    gr[u].push_back(make_pair(v, i));
    gr[v].push_back(make_pair(u, i));
  }
  dp[0][0] = 1000;
  dfs(1, 0, gr, dp, res, k);
  if (dp[0][0] == 1000) {
    cout << 0;
    return 0;
  }
  vector<int> out;
  if (dp[0][3]) out.push_back(dp[0][2]);
  cout << dp[0][0] << "\n";
  dfs2(dp[0][1], dp[0][3], gr, dp, res, k, out);
  sort(out.begin(), out.end());
  for (auto ed : out) cout << ed << " ";
  return 0;
}
