/**
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);
}
}