




"""simple docstring"""







from collections import defaultdict

def 						snake_case__       (					_lowerCamelCase				)			->int:






		"""simple docstring"""


		__lowercase				:		str												=				1
		__lowercase				:		str												=				True
		for v in tree[start]:
				if v not in visited:
						ret += dfs(_lowerCamelCase				)
		if ret % 2 == 0:
				cuts.append(_lowerCamelCase				)
		return ret

def 						snake_case__       (					)			->Tuple:






		"""simple docstring"""


		dfs(1				)


if __name__ == "__main__":
						__A,    __A   :  Union[str, Any]					=      1_0, 9
						__A   :  str					=      defaultdict(list)
						__A   :  dict[int, bool]					=      {}
						__A   :  list[int]					=      []
						__A   :  List[str]					=      0
						__A   :  Optional[int]					=      [(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)






"""simple docstring"""







def 						snake_case__       (					_lowerCamelCase				)			->list:






		"""simple docstring"""


		__lowercase				:		Optional[int]												=				[0] * len(_lowerCamelCase				)

		for i in range(1,  len(_lowerCamelCase				)				):
				# use last results for better performance - dynamic programming
				__lowercase				:		Optional[Any]												=				prefix_result[i - 1]
				while j > 0 and input_string[i] != input_string[j]:
						__lowercase				:		List[str]												=				prefix_result[j - 1]

				if input_string[i] == input_string[j]:
						j += 1
				__lowercase				:		Any												=				j

		return prefix_result

def 						snake_case__       (					_lowerCamelCase				)			->int:






		"""simple docstring"""


		return max(prefix_function(_lowerCamelCase				)				)


if __name__ == "__main__":
						import doctest

						doctest.testmod()
