






def 					lowercase_ (    __snake_case     :							list      )     -> list:





				'''simple docstring'''


				if any(not isinstance(__snake_case	,	__snake_case      ) or x < 0 for x in sequence      ):
								raise TypeError("Sequence must be list of non-negative integers"      )
				for _ in range(len(__snake_case      )      ):
								for i, (rod_upper, rod_lower) in enumerate(zip(__snake_case	,	sequence[1:]      )      ):
												if rod_upper > rod_lower:
																sequence[i] -= rod_upper - rod_lower
																sequence[i + 1] += rod_upper - rod_lower
				return sequence


if __name__ == "__main__":
	assert bead_sort([5, 4, 3, 2, 1]) == [1, 2, 3, 4, 5]
	assert bead_sort([7, 9, 4, 3, 5]) == [3, 4, 5, 7, 9]







__UpperCAmelCase							:   int							=  {"a": ["c", "b"], "b": ["d", "e"], "c": [], "d": [], "e": []}
__UpperCAmelCase							:   List[str]							=  ["a", "b", "c", "d", "e"]





def 					lowercase_ (    __snake_case     :							Optional[Any]	,	__snake_case     :							List[Any]	,	__snake_case     :							Tuple      )     -> Optional[int]:





				'''simple docstring'''


				snake_case__      :List[Any]         =   start
				# add current to visited
				visited.append(__snake_case      )
				snake_case__      :List[str]         =   edges[current]
				for neighbor in neighbors:
								# if neighbor not in visited, visit
								if neighbor not in visited:
												snake_case__      :Any         =   topological_sort(__snake_case	,	__snake_case	,	__snake_case      )
    # if all neighbors visited add current to sort
				sort.append(__snake_case      )
				# if all vertices haven't been visited select a new one to visit
				if len(__snake_case      ) != len(__snake_case      ):
								for vertice in vertices:
												if vertice not in visited:
																snake_case__      :Any         =   topological_sort(__snake_case	,	__snake_case	,	__snake_case      )
    # return sort
				return sort


if __name__ == "__main__":
	__UpperCAmelCase							:   Tuple							=  topological_sort("a", [], [])
	print(sort)