


import math
import sys







def        lowerCAmelCase_  (      __lowerCamelCase			):
							if number != int(__lowerCamelCase			):
														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	:    Optional[int]											=     [-1] * (number + 1)
							__snake_case	:    Optional[int]											=     0
							for i in range(1							,			number + 1			):
														__snake_case	:    Dict											=     sys.maxsize
														__snake_case	:    Tuple											=     int(math.sqrt(__lowerCamelCase			)			)
														for j in range(1							,			root + 1			):
																					__snake_case	:    Union[str, Any]											=     1 + answers[i - (j**2)]
																					__snake_case	:    List[str]											=     min(__lowerCamelCase							,			__lowerCamelCase			)
														__snake_case	:    int											=     answer
							return answers[number]


if __name__ == "__main__":
			import doctest

			doctest.testmod()





def        lowerCAmelCase_  (      __lowerCamelCase							,			__lowerCamelCase			):
							return int((input_a, input_a).count(0			) == 0			)







def        lowerCAmelCase_  (      ):
							assert and_gate(0							,			0			) == 0
							assert and_gate(0							,			1			) == 0
							assert and_gate(1							,			0			) == 0
							assert and_gate(1							,			1			) == 1


if __name__ == "__main__":
			test_and_gate()
			print(and_gate(1, 0))
			print(and_gate(0, 0))
			print(and_gate(0, 1))
			print(and_gate(1, 1))

