/**
[桥]zoj 2588 Burning Bridges
无向图求出所有桥
*/
#include <stdio.h>
#include <string.h>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
#define N 10001
#define M 100001
#define MK make_pair
vector<pair<int,int> > g[N];
map<pair<int,int>,int> mulEd;
void addedge(int u,int v,int i)
{
g[u].push_back(MK(v,i));
g[v].push_back(MK(u,i));
mulEd[MK(u,v)] ++;
mulEd[MK(v,u)] ++;
}
int n,m,bridge[M],nb;
int low[N],dfn[N],vis[N];
void dfs(int u,int f,int dth)
{
vis[u] = 1;
low[u] = dfn[u] = dth;
for(int i = 0; i < g[u].size(); ++i)
{
int v = g[u][i].first;
if(v != f && vis[v] == 1)