"""simple docstring"""







from __future__ import annotations

import sys


def 					a__ (						UpperCAmelCase__    :     int						,     UpperCAmelCase__    :     int     )->		tuple[int, int]:
						# base cases
						if abs(UpperCAmelCase__     ) == 1:
												return a, 0
						elif abs(UpperCAmelCase__     ) == 1:
												return 0, b

						UpperCAmelCase__		, UpperCAmelCase__   		=						a, b
						UpperCAmelCase__		, UpperCAmelCase__   		=						1, 0
						UpperCAmelCase__		, UpperCAmelCase__   		=						0, 1

						while remainder != 0:
												UpperCAmelCase__   		=						old_remainder // remainder
												UpperCAmelCase__		, UpperCAmelCase__   		=						remainder, old_remainder - quotient * remainder
												UpperCAmelCase__		, UpperCAmelCase__   		=						coeff_a, old_coeff_a - quotient * coeff_a
												UpperCAmelCase__		, UpperCAmelCase__   		=						coeff_b, old_coeff_b - quotient * coeff_b

						# sign correction for negative numbers
						if a < 0:
												UpperCAmelCase__   		=						-old_coeff_a
						if b < 0:
												UpperCAmelCase__   		=						-old_coeff_b

						return old_coeff_a, old_coeff_b


def 					a__ (						)->		Any:
						if len(sys.argv     ) < 3:
												print("""2 integer arguments required"""     )
												return 1
						UpperCAmelCase__   		=						int(sys.argv[1]     )
						UpperCAmelCase__   		=						int(sys.argv[2]     )
						print(extended_euclidean_algorithm(UpperCAmelCase__						,     UpperCAmelCase__     )     )
						return 0


if __name__ == "__main__":
						raise SystemExit(main())


"""simple docstring"""







class      _lowercase						:

				def __init__(       self    :      Tuple    ,      _lowercase    :      int       ):


										'''simple docstring'''
										UpperCAmelCase__   		=						data
										UpperCAmelCase__   		=						None
										UpperCAmelCase__   		=						None


def 					a__ (						UpperCAmelCase__    :     BinaryTreeNode | None						,     UpperCAmelCase__    :     int     )->		BinaryTreeNode | None:
						if node is None:
												UpperCAmelCase__   		=						BinaryTreeNode(UpperCAmelCase__     )
												return node

						# binary search tree is not empty,
						# so we will insert it into the tree
						# if new_value is less than value of data in node,
						#  add it to left subtree and proceed recursively
						if new_value < node.data:
												UpperCAmelCase__   		=						insert(node.left_child						,     UpperCAmelCase__     )
						else:
												# if new_value is greater than value of data in node,
												#  add it to right subtree and proceed recursively
												UpperCAmelCase__   		=						insert(node.right_child						,     UpperCAmelCase__     )
						return node


def 					a__ (						UpperCAmelCase__    :     None | BinaryTreeNode     )->		list[int]:  # if node is None,return
						if node:
												UpperCAmelCase__   		=						inorder(node.left_child     )
												UpperCAmelCase__   		=						[*inorder_array, node.data]
												UpperCAmelCase__   		=						inorder_array + inorder(node.right_child     )
						else:
												UpperCAmelCase__   		=						[]
						return inorder_array


def 					a__ (						)->		BinaryTreeNode | None:
						UpperCAmelCase__   		=						insert(UpperCAmelCase__						,     1_5     )
						insert(UpperCAmelCase__						,     1_0     )
						insert(UpperCAmelCase__						,     2_5     )
						insert(UpperCAmelCase__						,     6     )
						insert(UpperCAmelCase__						,     1_4     )
						insert(UpperCAmelCase__						,     2_0     )
						insert(UpperCAmelCase__						,     6_0     )
						return root


def 					a__ (						)->		None:
						# main function
						UpperCAmelCase__   		=						make_tree()
						print("""Printing values of binary search tree in Inorder Traversal."""     )
						inorder(UpperCAmelCase__     )


if __name__ == "__main__":
						import doctest

						doctest.testmod()
						main()

