





'''simple docstring'''






def      __A						(							a_						:  List[Any]	):
		lowerCAmelCase     :    str						=   [0] * len(a_	)
		lowerCAmelCase     :    Optional[int]						=   []
		lowerCAmelCase     :    str						=   []
		lowerCAmelCase     :    List[Any]						=   0

		for values in graph.values():
				for i in values:
						indegree[i] += 1

		for i in range(len(a_	)	):
				if indegree[i] == 0:
						queue.append(a_	)

		while queue:
				lowerCAmelCase     :    Optional[Any]						=   queue.pop(0	)
				cnt += 1
				topo.append(a_	)
				for x in graph[vertex]:
						indegree[x] -= 1
						if indegree[x] == 0:
								queue.append(a_	)

		if cnt != len(a_	):
				print("Cycle exists"	)
		else:
				print(a_	)


# Adjacency List of Graph
lowerCAmelCase       		=      {0: [1, 2], 1: [3], 2: [3], 3: [4, 5], 4: [], 5: []}

topological_sort(graph)










'''simple docstring'''






def      __A						(							a_						:  int      ,a_						:  int	):
		return abs(a_	) if a == 0 else greatest_common_divisor(b % a      ,a_	)






def      __A						(							a_						:  int      ,a_						:  int	):
		while y:  # --> when y=0 then loop will terminate and return x as final GCD.
				lowerCAmelCase	,		lowerCAmelCase     :    Tuple						=   y, x % y
		return abs(a_	)






def      __A						(							):
		try:
				lowerCAmelCase     :    Tuple						=   input("Enter two integers separated by comma (,): "	).split(","	)
				lowerCAmelCase     :    Tuple						=   int(nums[0]	)
				lowerCAmelCase     :    Tuple						=   int(nums[1]	)
				print(
				    f'''greatest_common_divisor({num_a}, {num_a}) = '''
				    f'''{greatest_common_divisor(a_      ,a_	)}'''	)
				print(f'''By iterative gcd({num_a}, {num_a}) = {gcd_by_iterative(a_      ,a_	)}'''	)
		except (IndexError, UnboundLocalError, ValueError):
				print("Wrong input"	)


if __name__ == "__main__":
					main()



