





'''simple docstring'''






def 							_lowerCamelCase(  UpperCamelCase__    : int    ,       UpperCamelCase__    : int		)		->  int:
    return abs(UpperCamelCase__		) if a == 0 else greatest_common_divisor(b % a    ,       UpperCamelCase__		)
def 							_lowerCamelCase(  UpperCamelCase__    : int    ,       UpperCamelCase__    : int		)		->  int:
    while y:  # --> when y=0 then loop will terminate and return x as final GCD.
        A,	A       :       Any							=						y, x % y
    return abs(UpperCamelCase__		)
def 							_lowerCamelCase(  )		->  Optional[Any]:
    try:
        A       :       Dict							=						input('''Enter two integers separated by comma (,): '''		).split(''','''		)
        A       :       List[Any]							=						int(nums[0]		)
        A       :       Optional[Any]							=						int(nums[1]		)
        print(
            F'''greatest_common_divisor({num_a}, {num_a}) = '''
            F'''{greatest_common_divisor(UpperCamelCase__    ,       UpperCamelCase__		)}'''		)
        print(F'''By iterative gcd({num_a}, {num_a}) = {gcd_by_iterative(UpperCamelCase__    ,       UpperCamelCase__		)}'''		)
    except (IndexError, UnboundLocalError, ValueError):
        print('''Wrong input'''		)


if __name__ == "__main__":
     main()







'''simple docstring'''






def 							_lowerCamelCase(  UpperCamelCase__    : Union[str, Any]    ,       UpperCamelCase__    : str		)		->  Optional[Any]:
    A       :       Tuple							=						0
    while b > 0:
        if b & 1:
            res += a

        a += a
        b >>= 1

    return res
def 							_lowerCamelCase(  UpperCamelCase__    : Any    ,       UpperCamelCase__    : Any    ,       UpperCamelCase__    : List[str]		)		->  Any:
    A       :       str							=						0
    while b > 0:
        if b & 1:
            A       :       List[Any]							=						((res % c) + (a % c)) % c

        a += a
        b >>= 1

    return res
