# algoritmul lui tarjan
# inca are niste probleme si nu prea merge imi cer scuze
n = 8
m = 12
muchii = [[1,2],[2,6],[6,7],[7,6],[3,1],[3,4],[2,3],[4,5],[5,4],[6,5],[5,8],[8,7]]
adj = {x: [] for x in range(n+1)}
for x,y in muchii:
adj[x].append(y)
adj[y].append(x)
lev = [0] * (n+1)
low = [0] * (n+1)
def dfs(nod, parinte, level):
if lev[nod] !=0:
return
lev[nod] = low[nod] = level
for x in adj[nod]:
if not lev[x]:
dfs(x, nod, level + 1)
curr = min([level] + [low[x] for x in adj[nod] if x != parinte])
low[nod] = curr
# print(low, lev)
dfs(0, 0, 0)
rez = []
for x,y in muchii:
if low[x] != lev[y]:
rez.append([x,y])
print(rez)