




import math
import sys





def 							UpperCAmelCase		(		snake_case			:					int    ):
					if number != int(snake_case    ):
										raise ValueError('''the value of input must be a natural number'''    )
					if number < 0:
										raise ValueError('''the value of input must not be a negative number'''    )
					if number == 0:
										return 1
					_lowerCAmelCase:Optional[Any]									=  [-1] * (number + 1)
					_lowerCAmelCase:Dict									=  0
					for i in range(1      ,       number + 1    ):
										_lowerCAmelCase:int									=  sys.maxsize
										_lowerCAmelCase:List[Any]									=  int(math.sqrt(snake_case    )    )
										for j in range(1      ,       root + 1    ):
															_lowerCAmelCase:int									=  1 + answers[i - (j**2)]
															_lowerCAmelCase:Optional[Any]									=  min(snake_case      ,       snake_case    )
										_lowerCAmelCase:List[Any]									=  answer
					return answers[number]


if __name__ == "__main__":
				import doctest

				doctest.testmod()












"""simple docstring"""






import baseaa





def 							UpperCAmelCase		(		snake_case			:					str    ):
					return baseaa.aaaencode(string.encode('''utf-8'''    )    )





def 							UpperCAmelCase		(		snake_case			:					bytes    ):
					return baseaa.aaadecode(snake_case    ).decode('''utf-8'''    )


if __name__ == "__main__":
				import doctest

				doctest.testmod()






