





"""simple docstring"""





def 					__A  (_SCREAMING_SNAKE_CASE	,  _SCREAMING_SNAKE_CASE     )   ->List[str]:





  """simple docstring"""


  print('\nThe shortest path matrix using Floyd Warshall algorithm\n'     )
  for i in range(_SCREAMING_SNAKE_CASE     ):
    for j in range(_SCREAMING_SNAKE_CASE     ):
      if dist[i][j] != float('inf'     ):
        print(int(dist[i][j]     )	,  end='\t'     )
      else:
        print('INF'	,  end='\t'     )
    print()
def 					__A  (_SCREAMING_SNAKE_CASE	,  _SCREAMING_SNAKE_CASE     )   ->List[Any]:





  """simple docstring"""


  lowerCAmelCase__     :List[str]											=				[[float('inf'     ) for _ in range(_SCREAMING_SNAKE_CASE     )] for _ in range(_SCREAMING_SNAKE_CASE     )]

  for i in range(_SCREAMING_SNAKE_CASE     ):
    for j in range(_SCREAMING_SNAKE_CASE     ):
      lowerCAmelCase__     :Union[str, Any]											=				graph[i][j]

      # check vertex k against all other vertices (i, j)
  for k in range(_SCREAMING_SNAKE_CASE     ):
    # looping through rows of graph array
    for i in range(_SCREAMING_SNAKE_CASE     ):
      # looping through columns of graph array
      for j in range(_SCREAMING_SNAKE_CASE     ):
        if (
            dist[i][k] != float('inf'     )
            and dist[k][j] != float('inf'     )
            and dist[i][k] + dist[k][j] < dist[i][j]
        ):
          lowerCAmelCase__     :Union[str, Any]											=				dist[i][k] + dist[k][j]

  _print_dist(_SCREAMING_SNAKE_CASE	,  _SCREAMING_SNAKE_CASE     )
  return dist, v


if __name__ == "__main__":
  __A											=						int(input("""Enter number of vertices: """))
  __A											=						int(input("""Enter number of edges: """))

  __A											=						[[float("""inf""") for i in range(v)] for j in range(v)]

  for i in range(v):
    __A											=						0.0

    # src and dst are indices that must be within the array size graph[e][v]
    # failure to follow this will result in an error
  for i in range(e):
    print("""\nEdge """, i + 1)
    __A											=						int(input("""Enter source:"""))
    __A											=						int(input("""Enter destination:"""))
    __A											=						float(input("""Enter weight:"""))
    __A											=						weight

  floyd_warshall(graph, v)

  # Example Input
  # Enter number of vertices: 3
  # Enter number of edges: 2

  # # generated graph from vertex and edge inputs
  # [[inf, inf, inf], [inf, inf, inf], [inf, inf, inf]]
  # [[0.0, inf, inf], [inf, 0.0, inf], [inf, inf, 0.0]]

  # specify source, destination and weight for edge #1
  # Edge  1
  # Enter source:1
  # Enter destination:2
  # Enter weight:2

  # specify source, destination and weight for edge #2
  # Edge  2
  # Enter source:2
  # Enter destination:1
  # Enter weight:1

  # # Expected Output from the vertice, edge and src, dst, weight inputs!!
  # 0		INF	INF
  # INF	0	2
  # INF	1	0








def       _SCREAMING_SNAKE_CASE (							__snake_case = 1_0_0_0 )				->						int:
       _UpperCAmelCase	,			_UpperCAmelCase							=    1, 1
       _UpperCAmelCase							=    []
       for i in range(1   ,      n + 1 ):
              _UpperCAmelCase							=    prev_numerator + 2 * prev_denominator
              _UpperCAmelCase							=    prev_numerator + prev_denominator
              if len(str(__snake_case ) ) > len(str(__snake_case ) ):
                     result.append(__snake_case )
              _UpperCAmelCase							=    numerator
              _UpperCAmelCase							=    denominator

       return len(__snake_case )


if __name__ == "__main__":
  print(F"{solution() = }")