
'''simple docstring'''





def     snake_case							(						UpperCAmelCase		)->     int:







      """simple docstring"""
      if number != int(UpperCAmelCase		):
            raise ValueError('factorial() only accepts integral values'		)
      if number < 0:
            raise ValueError('factorial() not defined for negative values'		)
      __A    		=     1
      for i in range(1 ,					number + 1		):
            value *= i
      return value





def     snake_case							(						UpperCAmelCase		)->     int:







      """simple docstring"""
      if not isinstance(UpperCAmelCase ,					UpperCAmelCase		):
            raise ValueError('factorial() only accepts integral values'		)
      if n < 0:
            raise ValueError('factorial() not defined for negative values'		)
      return 1 if n == 0 or n == 1 else n * factorial(n - 1		)


if __name__ == "__main__":
 import doctest

 doctest.testmod()

 a__						:				Tuple           =    int(input("Enter a positive integer: ").strip() or 0)
 print(f'''factorial{n} is {factorial(n)}''')








'''simple docstring'''





def     snake_case							(						UpperCAmelCase ,					UpperCAmelCase		)->     Union[str, Any]:







      """simple docstring"""
      print('\nVertex Distance'		)
      for i in range(UpperCAmelCase		):
            if dist[i] != float('inf'		):
                  print(UpperCAmelCase ,					'\t' ,					int(dist[i]		) ,					end='\t'		)
            else:
                  print(UpperCAmelCase ,					'\t' ,					'INF' ,					end='\t'		)
            print()





def     snake_case							(						UpperCAmelCase ,					UpperCAmelCase ,					UpperCAmelCase		)->     List[Any]:







      """simple docstring"""
      __A    		=     float('inf'		)
      __A    		=     -1
      for i in range(UpperCAmelCase		):
            if (not vset[i]) and mdist[i] < min_val:
                  __A    		=     i
                  __A    		=     mdist[i]
      return min_ind





def     snake_case							(						UpperCAmelCase ,					UpperCAmelCase ,					UpperCAmelCase		)->     Dict:







      """simple docstring"""
      __A    		=     [float('inf'		) for _ in range(UpperCAmelCase		)]
      __A    		=     [False for _ in range(UpperCAmelCase		)]
      __A    		=     0.0

      for _ in range(v - 1		):
            __A    		=     min_dist(UpperCAmelCase ,					UpperCAmelCase ,					UpperCAmelCase		)
            __A    		=     True

            for i in range(UpperCAmelCase		):
                  if (
                      (not vset[i])
                      and graph[u][i] != float('inf'		)
                      and mdist[u] + graph[u][i] < mdist[i]
                  ):
                        __A    		=     mdist[u] + graph[u][i]

      print_dist(UpperCAmelCase ,					UpperCAmelCase		)


if __name__ == "__main__":
 a__						:				Tuple           =    int(input("Enter number of vertices: ").strip())
 a__						:				List[str]           =    int(input("Enter number of edges: ").strip())

 a__						:				int           =    [[float("inf") for i in range(V)] for j in range(V)]

 for i in range(V):
  a__						:				Optional[int]           =    0.0

 for i in range(E):
  print("\nEdge ", i + 1)
  a__						:				Union[str, Any]           =    int(input("Enter source:").strip())
  a__						:				Tuple           =    int(input("Enter destination:").strip())
  a__						:				int           =    float(input("Enter weight:").strip())
  a__						:				Dict           =    weight

 a__						:				int           =    int(input("\nEnter shortest path source:").strip())
 dijkstra(graph, V, gsrc)






