






from math import sqrt




def      lowercase__      (     __snake_case    :							int = 1_000_000  ):


					'''simple docstring'''


					UpperCAmelCase_    :      int            =						0
					UpperCAmelCase_    :      int            =						0
					UpperCAmelCase_    :      int

					while num_cuboids <= limit:
										max_cuboid_size += 1
										for sum_shortest_sides in range(2     ,       2 * max_cuboid_size + 1  ):
															if sqrt(sum_shortest_sides**2 + max_cuboid_size**2  ).is_integer():
																				num_cuboids += (
																				    min(__snake_case     ,       sum_shortest_sides // 2  )
																				    - max(1     ,       sum_shortest_sides - max_cuboid_size  )
																				    + 1
																				)

					return max_cuboid_size


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














import os

# Precomputes a list of the 100 first triangular numbers
__UpperCAmelCase								=						[int(0.5 * n * (n + 1)) for n in range(1, 101)]




def      lowercase__      (     ):


					'''simple docstring'''


					UpperCAmelCase_    :      Any            =						os.path.dirname(os.path.realpath(__snake_case  )  )
					UpperCAmelCase_    :      Optional[Any]            =						os.path.join(__snake_case     ,       'words.txt'  )

					UpperCAmelCase_    :      Union[str, Any]            =						''
					with open(__snake_case  ) as f:
										UpperCAmelCase_    :      List[Any]            =						f.readline()

					UpperCAmelCase_    :      Optional[int]            =						[word.strip('"'  ) for word in words.strip('\r\n'  ).split(','  )]
					UpperCAmelCase_    :      Optional[int]            =						[
					    word
					    for word in [sum(ord(__snake_case  ) - 64 for x in word  ) for word in words]
					    if word in TRIANGULAR_NUMBERS
					]
					return len(__snake_case  )


if __name__ == "__main__":
		print(solution())






