


import math
import sys
def      UpperCAmelCase__		(UpperCamelCase_							):



     """simple docstring"""






     if number != int(UpperCamelCase_							):
          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
     snake_case											=							[-1] * (number + 1)
     snake_case											=							0
     for i in range(1				,number + 1							):
          snake_case											=							sys.maxsize
          snake_case											=							int(math.sqrt(UpperCamelCase_							)							)
          for j in range(1				,root + 1							):
               snake_case											=							1 + answers[i - (j**2)]
               snake_case											=							min(UpperCamelCase_				,UpperCamelCase_							)
          snake_case											=							answer
     return answers[number]


if __name__ == "__main__":
 import doctest

 doctest.testmod()








import os
from distutils.util import strtobool
def      UpperCAmelCase__		(UpperCamelCase_				,UpperCamelCase_							):



     """simple docstring"""






     for e in env_keys:
          snake_case											=							int(os.environ.get(UpperCamelCase_				,-1							)							)
          if val >= 0:
               return val
     return default
def      UpperCAmelCase__		(UpperCamelCase_				,UpperCamelCase_=False							):



     """simple docstring"""






     snake_case											=							os.environ.get(UpperCamelCase_				,str(UpperCamelCase_							)							)
     return strtobool(UpperCamelCase_							) == 1  # As its name indicates `strtobool` actually returns an int...

def      UpperCAmelCase__		(UpperCamelCase_				,UpperCamelCase_="no"							):



     """simple docstring"""






     snake_case											=							os.environ.get(UpperCamelCase_				,str(UpperCamelCase_							)							)
     return value




