#include <bits/stdc++.h>
using namespace std;
const int N = 4e2 + 2;
vector<pair<int, int> > y[N];
vector<int> v[N];
int M[N][N], H[N][N], T[N], n, k, i, a, b, asd;
void g(int x, int a) {
  for (int t, i = 0; i < y[x].size(); i++)
    if ((t = y[x][i].first) != a) {
      g(t, x);
      v[x].push_back(t);
      T[t] = y[x][i].second;
    }
}
int f(int a, int i, int k) {
  if (i == v[a].size()) return k ? N : 0;
  int x = v[a][i];
  int r = M[x][k];
  if (r != -1) return r;
  r = f(a, i + 1, k) + 1;
  for (int t, j = 0; j < k; j++)
    if (r > (t = f(x, 0, j) + f(a, i + 1, k - j - 1))) {
      r = t;
      H[x][k] = j;
    }
  return M[x][k] = r;
}
void h(int a, int i, int k) {
  if (i == v[a].size()) return;
  int x = v[a][i];
  if (H[x][k] == -1) {
    cout << T[x] << " ";
    h(a, i + 1, k);
    return;
  }
  h(x, 0, H[x][k]);
  h(a, i + 1, k - 1 - H[x][k]);
}
int main() {
  cin >> n >> k;
  for (i = 1; i < n; i++) {
    cin >> a >> b;
    y[a].push_back(make_pair(b, i));
    y[b].push_back(make_pair(a, i));
  }
  g(1, 0);
  memset(M, -1, sizeof M);
  memset(H, -1, sizeof H);
  asd = f((a = 1), 0, --k);
  for (i = 2; i <= n; i++)
    if (asd > (b = f(i, 0, k) + 1)) {
      asd = b;
      a = i;
    }
  cout << asd << endl;
  if (a > 1) cout << T[a] << " ";
  h(a, 0, k);
  return 0;
}
