


from __future__ import annotations

# This is the precision for this function which can be altered.
# It is recommended for users to keep this number greater than or equal to 10.
a					  =     1_0


def 			UpperCAmelCase_				(      UpperCAmelCase__						,							UpperCAmelCase__						,							UpperCAmelCase__						,							UpperCAmelCase__  ):
					for i in range(UpperCAmelCase__						,							UpperCAmelCase__  ):
										if array[i] == target:
															return i
					return -1


def 			UpperCAmelCase_				(      UpperCAmelCase__						,							UpperCAmelCase__  ):
					lowercase_  							=			0
					lowercase_  							=			len(UpperCAmelCase__  )
					while left <= right:
										if right - left < precision:
															return lin_search(UpperCAmelCase__						,							UpperCAmelCase__						,							UpperCAmelCase__						,							UpperCAmelCase__  )

										lowercase_  							=			(left + right) // 3 + 1
										lowercase_  							=			2 * (left + right) // 3 + 1

										if array[one_third] == target:
															return one_third
										elif array[two_third] == target:
															return two_third

										elif target < array[one_third]:
															lowercase_  							=			one_third - 1
										elif array[two_third] < target:
															lowercase_  							=			two_third + 1

										else:
															lowercase_  							=			one_third + 1
															lowercase_  							=			two_third - 1
					else:
										return -1


def 			UpperCAmelCase_				(      UpperCAmelCase__						,							UpperCAmelCase__						,							UpperCAmelCase__						,							UpperCAmelCase__  ):
					if left < right:
										if right - left < precision:
															return lin_search(UpperCAmelCase__						,							UpperCAmelCase__						,							UpperCAmelCase__						,							UpperCAmelCase__  )
										lowercase_  							=			(left + right) // 3 + 1
										lowercase_  							=			2 * (left + right) // 3 + 1

										if array[one_third] == target:
															return one_third
										elif array[two_third] == target:
															return two_third

										elif target < array[one_third]:
															return rec_ternary_search(UpperCAmelCase__						,							one_third - 1						,							UpperCAmelCase__						,							UpperCAmelCase__  )
										elif array[two_third] < target:
															return rec_ternary_search(two_third + 1						,							UpperCAmelCase__						,							UpperCAmelCase__						,							UpperCAmelCase__  )
										else:
															return rec_ternary_search(one_third + 1						,							two_third - 1						,							UpperCAmelCase__						,							UpperCAmelCase__  )
					else:
										return -1


if __name__ == "__main__":
							import doctest

							doctest.testmod()

							a					  =     input('Enter numbers separated by comma:\n').strip()
							a					  =     [int(item.strip()) for item in user_input.split(',')]
							assert collection == sorted(collection), F"List must be ordered.\n{collection}."
							a					  =     int(input('Enter the number to be found in the list:\n').strip())
							a					  =     ite_ternary_search(collection, target)
							a					  =     rec_ternary_search(0, len(collection) - 1, collection, target)
							if resulta != -1:
														print(F'''Iterative search: {target} found at positions: {resulta}''')
														print(F'''Recursive search: {target} found at positions: {resulta}''')
							else:
														print('Not found')






def 			UpperCAmelCase_				(      UpperCAmelCase__  ):
					return " ".join(input_str.split()[::-1]  )


if __name__ == "__main__":
							import doctest

							doctest.testmod()


