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 sys
  
  if sys.platform =='ios':
  	sys.stdin=open('Untitled.txt')
  input = sys.stdin.readline
  def INT(): return int(input())
  def MAP(): return [int(s) for s in input().split()]
  
  def dfs(G, v):
  	seen[v] += 1
  	#print('v :', v)
  	
  	for nv in G[v]:
  		if seen[nv]: continue
  		#print('v nv :', v, nv, 'Recursion')
  		dfs(G, nv)
  
  N, M = MAP()
  A = [MAP() for _ in range(M)]
  
  #print(A)
  
  ans = 0
  for i in range(M):
  	G = [[] for _ in range(N)]
  	for j, m in enumerate(A):
  		# i!=jのとき辺を追加しない
  		if i != j:
  			a, b = m
  			G[a-1].append(b-1)
  			G[b-1].append(a-1)
  		
  	seen = [0] * N
  	dfs(G, 1)
  	#print(i, j, seen)
  	
  	if sum(seen) != N: ans += 1
  
  print(ans)import sys
  
  if sys.platform =='ios':
  	sys.stdin=open('Untitled.txt')
  input = sys.stdin.readline
  def INT(): return int(input())
  def MAP(): return [int(s) for s in input().split()]
  
  def dfs(G, v):
  	seen[v] += 1
  	#print('v :', v)
  	
  	for nv in G[v]:
  		if seen[nv]: continue
  		#print('v nv :', v, nv, 'Recursion')
  		dfs(G, nv)
  
  N, M = MAP()
  A = [MAP() for _ in range(M)]
  
  #print(A)
  
  ans = 0
  for i in range(M):
  	G = [[] for _ in range(N)]
  	for j, m in enumerate(A):
  		# i!=jのとき辺を追加しない
  		if i != j:
  			a, b = m
  			G[a-1].append(b-1)
  			G[b-1].append(a-1)
  		
  	seen = [0] * N
  	dfs(G, 1)
  	#print(i, j, seen)
  	
  	if sum(seen) != N: ans += 1
  
  print(ans)
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."}]