'''simple docstring'''




def _lowercase	(      lowerCamelCase__							,    lowerCamelCase__						)					->       int:





       """simple docstring"""


       while a != 0:
              __UpperCAmelCase  :				Optional[Any]       				=		b % a, a
       return b


def _lowercase	(      lowerCamelCase__							,    lowerCamelCase__						)					->       int:





       """simple docstring"""


       if gcd(lowerCamelCase__							,    lowerCamelCase__						) != 1:
              __UpperCAmelCase  :				Any       				=		f"""mod inverse of {a!r} and {m!r} does not exist"""
              raise ValueError(lowerCamelCase__						)
       __UpperCAmelCase  :				str       				=		1, 0, a
       __UpperCAmelCase  :				Union[str, Any]       				=		0, 1, m
       while va != 0:
              __UpperCAmelCase  :				Any       				=		ua // va
              __UpperCAmelCase  :				List[Any]       				=		(ua - q * va), (ua - q * va), (ua - q * va), va, va, va
       return ua % m







'''simple docstring'''




from maths.is_square_free import is_square_free
from maths.prime_factors import prime_factors

def _lowercase	(      lowerCamelCase__						)					->       int:





       """simple docstring"""


       __UpperCAmelCase  :				Any       				=		prime_factors(lowerCamelCase__						)
       if is_square_free(lowerCamelCase__						):
              return -1 if len(lowerCamelCase__						) % 2 else 1
       return 0


if __name__ == "__main__":
   import doctest

   doctest.testmod()






