

"""simple docstring"""



def  _snake_case     (    UpperCAmelCase_  :					int = 6008_5147_5143			):

					try:
										A__										=  int(UpperCAmelCase_			)
					except (TypeError, ValueError):
										raise TypeError("""Parameter n must be int or castable to int."""			)
					if n <= 0:
										raise ValueError("""Parameter n must be greater than or equal to one."""			)
					A__										=  1
					A__										=  2
					while i * i <= n:
										while n % i == 0:
															A__										=  i
															n //= i
										i += 1
					if n > 1:
										A__										=  n
					return int(UpperCAmelCase_			)


if __name__ == "__main__":
	print(f"""{solution() = }""")









"""simple docstring"""



from collections import defaultdict





def  _snake_case     (    UpperCAmelCase_  :					int			):
     A__										=  1
     A__										=  True
     for v in tree[start]:
          if v not in visited:
               ret += dfs(UpperCAmelCase_			)
     if ret % 2 == 0:
          cuts.append(UpperCAmelCase_			)
     return ret





def  _snake_case     (    ):
     dfs(1			)


if __name__ == "__main__":
 SCREAMING_SNAKE_CASE_  ,SCREAMING_SNAKE_CASE_					:	Any							  =						1_0, 9
 SCREAMING_SNAKE_CASE_					:	Any							  =						defaultdict(list)
 SCREAMING_SNAKE_CASE_					:	dict[int, bool]							  =						{}
 SCREAMING_SNAKE_CASE_					:	list[int]							  =						[]
 SCREAMING_SNAKE_CASE_					:	Optional[int]							  =						0
 SCREAMING_SNAKE_CASE_					:	Any							  =						[(2, 1), (3, 1), (4, 3), (5, 2), (6, 1), (7, 2), (8, 6), (9, 8), (1_0, 8)]
 for u, v in edges:
  tree[u].append(v)
  tree[v].append(u)
 even_tree()
 print(len(cuts) - 1)






