"""simple docstring"""







lowerCamelCase__        =		{
    "km/h": 1.0,
    "m/s": 3.6,
    "mph": 1.6_0_9_3_4_4,
    "knot": 1.8_5_2,
}

lowerCamelCase__        =		{
    "km/h": 1.0,
    "m/s": 0.2_7_7_7_7_7_7_7_8,
    "mph": 0.6_2_1_3_7_1_1_9_2,
    "knot": 0.5_3_9_9_5_6_8_0_3,
}
def    __lowerCAmelCase    (_UpperCamelCase	,  _UpperCamelCase	,  _UpperCamelCase		):
	if unit_to not in speed_chart or unit_from not in speed_chart_inverse:
		__lowerCAmelCase      :						str						      =				(
		    F"Incorrect \'from_type\' or \'to_type\' value: {unit_from!r}, {unit_to!r}\n"
		    F"Valid values are: {', '.join(lowerCamelCase_		)}"
		)
		raise ValueError(lowerCamelCase_		)
	return round(speed * speed_chart[unit_from] * speed_chart_inverse[unit_to]	,  3		)


if __name__ == "__main__":
							import doctest

							doctest.testmod()

"""simple docstring"""







class 			A__	:

		def __init__(				self	,		_SCREAMING_SNAKE_CASE			):
			__lowerCAmelCase      :						List[Any]						      =				size
			__lowerCAmelCase      :						str						      =				[0] * size
			__lowerCAmelCase      :						Any						      =				[0] * size

		@staticmethod
		def 							__lowerCamelCase							(				_SCREAMING_SNAKE_CASE			):
			return index | (index + 1)

		@staticmethod
		def 							__lowerCamelCase							(				_SCREAMING_SNAKE_CASE			):
			return (index & (index + 1)) - 1

		def 							__lowerCamelCase							(				self	,		_SCREAMING_SNAKE_CASE	,		_SCREAMING_SNAKE_CASE			):
			__lowerCAmelCase      :						Any						      =				value
			while index < self.size:
				__lowerCAmelCase      :						Dict						      =				self.get_prev(_SCREAMING_SNAKE_CASE			) + 1
				if current_left_border == index:
					__lowerCAmelCase      :						Any						      =				value
				else:
					__lowerCAmelCase      :						Any						      =				max(_SCREAMING_SNAKE_CASE	,		_SCREAMING_SNAKE_CASE	,		_SCREAMING_SNAKE_CASE			)
				__lowerCAmelCase      :						List[Any]						      =				self.get_next(_SCREAMING_SNAKE_CASE			)







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


if __name__ == "__main__":
							import doctest

							doctest.testmod()