



"""simple docstring"""







from __future__ import annotations






class   UpperCAmelCase__		:



		def __init__(			self	:     Dict   ,				snake_case	:     int					)      ->    None:






									'''simple docstring'''

									A    =       vertices
									A    =       [[0] * vertices for _ in range(snake_case					)]



		def        A_		(			self	:     Union[str, Any]   ,				snake_case	:     list[int]					)      ->    None:






									'''simple docstring'''

									print('Vertex \t Distance from Source'					)
									for vertex in range(self.vertices					):
																print(snake_case   ,				'\t\t'   ,				distances_from_source[vertex]					)



		def        A_		(			self	:     List[Any]   ,				snake_case	:     list[int]   ,				snake_case	:     list[bool]					)      ->    int:






									'''simple docstring'''

									A    =       1E7
									A    =       0

									# Search not nearest vertex not in the shortest path tree
									for vertex in range(self.vertices					):
																if distances_from_source[vertex] < minimum and visited[vertex] is False:
																							A    =       distances_from_source[vertex]
																							A    =       vertex
									return min_index



		def        A_		(			self	:     Tuple   ,				snake_case	:     int					)      ->    None:






									'''simple docstring'''

									A    =       [int(1E7					)] * self.vertices  # distances from the source
									A    =       0
									A    =       [False] * self.vertices

									for _ in range(self.vertices					):
																A    =       self.minimum_distance(snake_case   ,				snake_case					)
																A    =       True

																# Update dist value of the adjacent vertices
																# of the picked vertex only if the current
																# distance is greater than new distance and
																# the vertex in not in the shortest path tree
																for v in range(self.vertices					):
																							if (
																							    self.graph[u][v] > 0
																							    and visited[v] is False
																							    and distances[v] > distances[u] + self.graph[u][v]
																							):
																														A    =       distances[u] + self.graph[u][v]

									self.print_solution(snake_case					)


if __name__ == "__main__":
							A     =      Graph(9)
							A     =      [
							    [0, 4, 0, 0, 0, 0, 0, 8, 0],
							    [4, 0, 8, 0, 0, 0, 0, 1_1, 0],
							    [0, 8, 0, 7, 0, 4, 0, 0, 2],
							    [0, 0, 7, 0, 9, 1_4, 0, 0, 0],
							    [0, 0, 0, 9, 0, 1_0, 0, 0, 0],
							    [0, 0, 4, 1_4, 1_0, 0, 2, 0, 0],
							    [0, 0, 0, 0, 0, 2, 0, 1, 6],
							    [8, 1_1, 0, 0, 0, 0, 1, 0, 7],
							    [0, 0, 2, 0, 0, 0, 6, 7, 0],
							]
							graph.dijkstra(0)








"""simple docstring"""







def 	lowerCAmelCase__      (  lowerCamelCase__      )			->				List[str]:
							A    =       [701, 301, 132, 57, 23, 10, 4, 1]
							for gap in gaps:
														for i in range(lowerCamelCase__					,   len(lowerCamelCase__      )      ):
																					A    =       collection[i]
																					A    =       i
																					while j >= gap and collection[j - gap] > insert_value:
																												A    =       collection[j - gap]
																												j -= gap
																					if j != i:
																												A    =       insert_value
							return collection


if __name__ == "__main__":
							from doctest import testmod

							testmod()
							A     =      input('Enter numbers separated by a comma:\n').strip()
							A     =      [int(item) for item in user_input.split(',')]
							print(shell_sort(unsorted))



