

def  lowerCamelCase__ (					_a							,			_a):
	while a != 0:
		SCREAMING_SNAKE_CASE   :      int				     =       b % a, a
	return b


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


class _UpperCamelCase							:
			'''simple docstring'''







			def __init__(			self							: Optional[Any]      ,      a							: int	)							->       None:

				"""simple docstring"""

				SCREAMING_SNAKE_CASE   :      Tuple				     =       size
				SCREAMING_SNAKE_CASE   :      Union[str, Any]				     =       [0] * size
				SCREAMING_SNAKE_CASE   :      Union[str, Any]				     =       [0] * size
			@staticmethod
			def 							__UpperCamelCase (			a							: int	)							->       int:

				"""simple docstring"""

				return index | (index + 1)
			@staticmethod
			def 							__UpperCamelCase (			a							: int	)							->       int:

				"""simple docstring"""

				return (index & (index + 1)) - 1
			def 							__UpperCamelCase (			self							: Any      ,      a							: int      ,      a							: int	)							->       None:

				"""simple docstring"""

				SCREAMING_SNAKE_CASE   :      Union[str, Any]				     =       value
				while index < self.size:
					SCREAMING_SNAKE_CASE   :      Dict				     =       self.get_prev(a	) + 1
					if current_left_border == index:
						SCREAMING_SNAKE_CASE   :      Optional[int]				     =       value
					else:
						SCREAMING_SNAKE_CASE   :      Tuple				     =       max(a      ,      a      ,      a	)
					SCREAMING_SNAKE_CASE   :      Optional[Any]				     =       self.get_next(a	)






			def 							__UpperCamelCase (			self							: Optional[int]      ,      a							: int      ,      a							: int	)							->       int:

				"""simple docstring"""

				right -= 1  # Because of right is exclusive
				SCREAMING_SNAKE_CASE   :      Optional[int]				     =       0
				while left <= right:
					SCREAMING_SNAKE_CASE   :      List[Any]				     =       self.get_prev(a	)
					if left <= current_left:
						SCREAMING_SNAKE_CASE   :      List[Any]				     =       max(a      ,      self.tree[right]	)
						SCREAMING_SNAKE_CASE   :      str				     =       current_left
					else:
						SCREAMING_SNAKE_CASE   :      List[str]				     =       max(a      ,      self.arr[right]	)
						right -= 1
				return result


if __name__ == "__main__":
			import doctest

			doctest.testmod()