output_description: Print the number of the edges that are bridges among the M edges.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N M  
      a_1 b_1  
      a_2 b_2
      :  
      a_M b_M
attempt: import copy
  
  N, M = map(int, input().split())
  count = 0
  path = [[] for j in range(N + 1)]
  for n in range(M):
      a, b = map(int, input().split())
      path[a].append(b)
      path[b].append(a)
  visited = []
  road = []
  
  
  def solve(now, visited, road):
      ans = []
      if now in visited:
          return visited
      visited.append(now)
      for i in range(len(road[now])):
          ans.extend(solve(road[now][i], visited[:], road[:]))
      return ans
  
  
  PATH = copy.deepcopy(path)
  check = [[0 for C in range(N + 1)] for c in range(N + 1)]
  Ans = [[] for c in range(N + 1)]
  for x in range(1, N + 1):
      Q = []
      for y in range(len(PATH[x])):
          check[x][path[x][y]] = 1
          if check[path[x][y]][x] != 1:
              PATH = copy.deepcopy(path)
              PATH[x].pop(y)
              Q = copy.deepcopy(solve(x, [], PATH[:]))
              Q = list(set(Q))
              Ans[x].append(len(Q))
  
  for i in range(N + 1):
      for s in range(len(Ans[i])):
          if Ans[i][s] != N:
              count += 1
              break
  
  print(count)
  
problem_description: Statement
  
  You are given an undirected connected graph with N vertices and M edges that
  does not contain self-loops and double edges.  
  The i-th edge (1 \leq i \leq M) connects Vertex a_i and Vertex b_i.
  
  An edge whose removal disconnects the graph is called a _bridge_.  
  Find the number of the edges that are bridges among the M edges.
samples: [{"input": "7 7\n    1 3\n    2 7\n    3 4\n    4 5\n    4 6\n    5 6\n    6 7", "output": "4\n    \n\nThe figure below shows the given graph:\n\n![570677a9809fd7a5b63bff11e5d9bf79.png](https://img.atcoder.jp/abc075/570677a9809fd7a5b63bff11e5d9bf79.png)\n\nThe edges shown in red are bridges. There are four of them.\n\n* * *"}, {"input": "3 3\n    1 2\n    1 3\n    2 3", "output": "0\n    \n\nIt is possible that there is no bridge.\n\n* * *"}, {"input": "6 5\n    1 2\n    2 3\n    3 4\n    4 5\n    5 6", "output": "5\n    \n\nIt is possible that every edge is a bridge."}]