






"""simple docstring"""



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






     '''simple docstring'''



     if power < 0:
          return -1
     base %= mod
     UpperCAmelCase__		:  Dict				=				1

     while power > 0:
          if power & 1:
               UpperCAmelCase__		:  Tuple				=				(result * base) % mod
          UpperCAmelCase__		:  Dict				=				power >> 1
          UpperCAmelCase__		:  Union[str, Any]				=				(base * base) % mod

     return result


def      SCREAMING_SNAKE_CASE__    (   )->						Optional[int]:






     '''simple docstring'''



     print(modular_exponential(3       , 200       , 13							)							)


if __name__ == "__main__":
 import doctest

 doctest.testmod()

 main()









def    _lowercase    (  _UpperCAmelCase	,					_UpperCAmelCase )  ->     int:
				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    _lowercase    (  _UpperCAmelCase	,					_UpperCAmelCase	,					_UpperCAmelCase )  ->     Dict:
				lowerCamelCase		       =float("""inf""" )
				lowerCamelCase		       =-1
				for i in range(_UpperCAmelCase ):
								if (not vset[i]) and mdist[i] < min_val:
												lowerCamelCase		       =i
												lowerCamelCase		       =mdist[i]
				return min_ind





def    _lowercase    (  _UpperCAmelCase	,					_UpperCAmelCase	,					_UpperCAmelCase )  ->     Optional[int]:
				lowerCamelCase		       =[float("""inf""" ) for _ in range(_UpperCAmelCase )]
				lowerCamelCase		       =[False for _ in range(_UpperCAmelCase )]
				lowerCamelCase		       =0.0

				for _ in range(v - 1 ):
								lowerCamelCase		       =min_dist(_UpperCAmelCase	,					_UpperCAmelCase	,					_UpperCAmelCase )
								lowerCamelCase		       =True

								for i in range(_UpperCAmelCase ):
												if (
												    (not vset[i])
												    and graph[u][i] != float("""inf""" )
												    and mdist[u] + graph[u][i] < mdist[i]
												):
																lowerCamelCase		       =mdist[u] + graph[u][i]

				print_dist(_UpperCAmelCase	,					_UpperCAmelCase )


if __name__ == "__main__":
							UpperCAmelCase__  :	Tuple     =int(input('''Enter number of vertices: ''').strip())
							UpperCAmelCase__  :	str     =int(input('''Enter number of edges: ''').strip())

							UpperCAmelCase__  :	str     =[[float('''inf''') for i in range(V)] for j in range(V)]

							for i in range(V):
														UpperCAmelCase__  :	Dict     =0.0

							for i in range(E):
														print('''\nEdge ''', i + 1)
														UpperCAmelCase__  :	int     =int(input('''Enter source:''').strip())
														UpperCAmelCase__  :	str     =int(input('''Enter destination:''').strip())
														UpperCAmelCase__  :	List[Any]     =float(input('''Enter weight:''').strip())
														UpperCAmelCase__  :	str     =weight

							UpperCAmelCase__  :	Tuple     =int(input('''\nEnter shortest path source:''').strip())
							dijkstra(graph, V, gsrc)





