


import unittest
from timeit import timeit




def      __snake_case       (       lowerCamelCase_ :				Tuple	,  lowerCamelCase_ :				Optional[int]						):
				'''simple docstring'''




				__magic_name__	  = first_num if first_num >= second_num else second_num
				__magic_name__	  = max_num
				while (common_mult % first_num > 0) or (common_mult % second_num > 0):
								common_mult += max_num
				return common_mult




def      __snake_case       (       lowerCamelCase_ :				Tuple	,  lowerCamelCase_ :				Optional[int]						):
				'''simple docstring'''




				return b if a == 0 else greatest_common_divisor(b % a	,  lowercase_						)




def      __snake_case       (       lowerCamelCase_ :				Optional[Any]	,  lowerCamelCase_ :				Dict						):
				'''simple docstring'''




				return first_num // greatest_common_divisor(lowercase_	,  lowercase_						) * second_num




def      __snake_case       (       ):
				'''simple docstring'''




				__magic_name__	  = (
				    "from __main__ import least_common_multiple_slow, least_common_multiple_fast"
				)
				print(
				    "least_common_multiple_slow():"	,  timeit("least_common_multiple_slow(1000, 999)"	,  setup=lowercase_						)	,  )
				print(
				    "least_common_multiple_fast():"	,  timeit("least_common_multiple_fast(1000, 999)"	,  setup=lowercase_						)	,  )






class 		UpperCamelCase_		(					unittest.TestCase   ):





						"""simple docstring"""




						UpperCAmelCase__	:       List[Any]         =     (
						    (10, 20),
						    (13, 15),
						    (4, 31),
						    (10, 42),
						    (43, 34),
						    (5, 12),
						    (12, 25),
						    (10, 25),
						    (6, 9),
						)
						UpperCAmelCase__	:       List[str]         =     (20, 195, 124, 210, 1462, 60, 300, 50, 18)
						def 					__A					( self				:					Dict  )							->					List[str]:
										for i, (first_num, second_num) in enumerate(self.test_inputs  ):
														__magic_name__	  = least_common_multiple_slow(__UpperCamelCase	,				__UpperCamelCase  )
														__magic_name__	  = least_common_multiple_fast(__UpperCamelCase	,				__UpperCamelCase  )
														with self.subTest(i=__UpperCamelCase  ):
																		self.assertEqual(__UpperCamelCase	,				self.expected_results[i]  )
																		self.assertEqual(__UpperCamelCase	,				self.expected_results[i]  )


if __name__ == "__main__":
						benchmark()
						unittest.main()







'''simple docstring'''
def      __snake_case       (       lowerCamelCase_ :				int = 100						):
				'''simple docstring'''




				__magic_name__	  = [[0 for _ in range(lowerCamelCase_						)] for _ in range(m + 1						)]
				for i in range(m + 1						):
								__magic_name__	  = 1

				for n in range(m + 1						):
								for k in range(1	,  lowerCamelCase_						):
												memo[n][k] += memo[n][k - 1]
												if n > k:
																memo[n][k] += memo[n - k - 1][k]

				return memo[m][m - 1] - 1


if __name__ == "__main__":
						print(solution(int(input('Enter a number: ').strip())))



