/**
 n m
 a1 b1
 ...
 am bm
*/

#include <cstdio>
#include <vector>
using namespace std;

#define forn(i, n) for (int i = 0; i < (int)(n); i++)

typedef pair <int, int> pii;

const int N = 1e5;
vector<pii> c[N];
int n, m, u[N];
int T, t[N], mt[N];
int sp, ss[N];

void out( int old ) {
  printf("component:");
  while (sp > old) printf(" %d", ss[--sp]);
  puts("");
}
void dfs( int v, int pr ) { // O(V)
  u[v] = 1;
  mt[v] = t[v] = T++;
  // t[v] -- время входа в v
  // mt[v] -- минимальное достижимое t[i]
  ss[sp++] = v;
  for (auto p : c[v]) {
    int x = p.first, i = p.second; 
    if (x != pr) { // O(E)
      if (!u[x]) {
        int old = sp;
        dfs(x, v);
        if (mt[x] > t[v]) {
          printf("bridge: %d\n", i + 1);
          out(old);
        }
        mt[v] = min(mt[v], mt[x]);
      } else {
        mt[v] = min(mt[v], t[x]);
      }
    } else
      pr = -1;
  }
}
int main() {
  scanf("%d%d", &n, &m);
  forn(i, m) {
    int a, b;
    scanf("%d%d", &a, &b), a--, b--; // 0..n-1
    c[a].push_back(pii(b, i));
    c[b].push_back(pii(a, i));
  }
  forn(i, n)
    if (!u[i]) {
      dfs(i, -1);
      out(0);
    }
}