


from __future__ import annotations


def 		lowercase_  (     _UpperCamelCase  ):  # This function is recursive


			'''simple docstring'''







			__lowercase 					=   len(_UpperCamelCase  )
			# If the array contains only one element, we return it (it's the stop condition of
			# recursion)
			if array_length <= 1:
						return array
						# Else
			__lowercase 					=   array[0]
			__lowercase 					=   False
			__lowercase 					=   1
			__lowercase 					=   []
			while not is_found and i < array_length:
						if array[i] < pivot:
									__lowercase 					=   True
									__lowercase 					=   [element for element in array[i:] if element >= array[i]]
									__lowercase 					=   longest_subsequence(_UpperCamelCase  )
									if len(_UpperCamelCase  ) > len(_UpperCamelCase  ):
												__lowercase 					=   temp_array
						else:
									i += 1

			__lowercase 					=   [element for element in array[1:] if element >= pivot]
			__lowercase 					=   [pivot, *longest_subsequence(_UpperCamelCase  )]
			if len(_UpperCamelCase  ) > len(_UpperCamelCase  ):
						return temp_array
			else:
						return longest_subseq


if __name__ == "__main__":
	import doctest

	doctest.testmod()






from ..utils import DummyObject, requires_backends
class 	lowerCamelCase_       (				metaclass=lowerCAmelCase__				):



					'''simple docstring'''







					__UpperCAmelCase            =				["onnx"]






					def __init__(				self ,       *snake_case_ ,       **snake_case_						)   ->			List[Any]:







								'''simple docstring'''

								requires_backends(self ,       ['''onnx''']						)






					@classmethod
					def A      (				cls ,       *snake_case_ ,       **snake_case_						)   ->			int:







								'''simple docstring'''

								requires_backends(cls ,       ['''onnx''']						)






					@classmethod
					def A      (				cls ,       *snake_case_ ,       **snake_case_						)   ->			List[str]:







								'''simple docstring'''

								requires_backends(cls ,       ['''onnx''']						)


