

'''simple docstring'''


def 						SCREAMING_SNAKE_CASE(  UpperCamelCase = 3   ,UpperCamelCase = 7   ,UpperCamelCase = 1_0_0_0_0_0_0  )    ->    Any:
	UpperCAmelCase_		:      Tuple       	=					0
	UpperCAmelCase_		:      Any       	=					1

	for current_denominator in range(1   ,limit + 1  ):
		UpperCAmelCase_		:      Optional[int]       	=					current_denominator * numerator // denominator
		if current_denominator % denominator == 0:
			current_numerator -= 1
		if current_numerator * max_denominator > current_denominator * max_numerator:
			UpperCAmelCase_		:      int       	=					current_numerator
			UpperCAmelCase_		:      Dict       	=					current_denominator
	return max_numerator


if __name__ == "__main__":
						print(solution(numerator=3, denominator=7, limit=1000000))









'''simple docstring'''


import math



class 					lowercase						:


							def __init__(			self    ,			_snake_case=0)							->				Union[str, Any]:  # a graph with Node 0,1,...,N-1
								UpperCAmelCase_		:      Tuple       	=					n
								UpperCAmelCase_		:      Optional[Any]       	=					[
								    [math.inf for j in range(0    ,			_snake_case)] for i in range(0    ,			_snake_case)
								]  # adjacency matrix for weight
								UpperCAmelCase_		:      Tuple       	=					[
								    [math.inf for j in range(0    ,			_snake_case)] for i in range(0    ,			_snake_case)
								]  # dp[i][j] stores minimum distance from i to j


							def 						_snake_case							(			self    ,			_snake_case    ,			_snake_case    ,			_snake_case)							->				List[Any]:
								UpperCAmelCase_		:      Union[str, Any]       	=					w


							def 						_snake_case							(			self)							->				str:
								for k in range(0    ,			self.n):
									for i in range(0    ,			self.n):
										for j in range(0    ,			self.n):
											UpperCAmelCase_		:      Optional[int]       	=					min(self.dp[i][j]    ,			self.dp[i][k] + self.dp[k][j])





							def 						_snake_case							(			self    ,			_snake_case    ,			_snake_case)							->				str:
								return self.dp[u][v]


if __name__ == "__main__":
						lowerCAmelCase__										= Graph(5)
						graph.add_edge(0, 2, 9)
						graph.add_edge(0, 4, 10)
						graph.add_edge(1, 3, 5)
						graph.add_edge(2, 3, 7)
						graph.add_edge(3, 0, 10)
						graph.add_edge(3, 1, 2)
						graph.add_edge(3, 2, 1)
						graph.add_edge(3, 4, 6)
						graph.add_edge(4, 1, 3)
						graph.add_edge(4, 2, 4)
						graph.add_edge(4, 3, 9)
						graph.floyd_warshall()
						graph.show_min(1, 4)
						graph.show_min(0, 3)






