





"""simple docstring"""



import math







def 						__lowercase	(  snake_case_    :    int		)  ->int:



    '''simple docstring'''







    if not isinstance(snake_case_							,snake_case_		):
        __A       :		Dict							=	F"""Input value of [number={number}] must be an integer"""
        raise TypeError(snake_case_		)

    if number < 1:
        __A       :		Optional[Any]							=	F"""Input value of [number={number}] must be > 0"""
        raise ValueError(snake_case_		)
    elif number == 1:
        return 3
    elif number == 2:
        return 5
    else:
        __A       :		Optional[Any]							=	int(math.log(number // 3							,2		)		) + 2

        __A       :		List[Any]							=	[3, 5]
        __A       :		Optional[int]							=	2
        __A       :		Union[str, Any]							=	3
        for block in range(1							,snake_case_		):
            for _ in range(snake_case_		):
                proth_list.append(2 ** (block + 1) + proth_list[proth_index - 1]		)
                proth_index += 1
            increment *= 2

    return proth_list[number - 1]


if __name__ == "__main__":
       import doctest

       doctest.testmod()

       for number in range(11):
              a_					=     0
              try:
                     a_					=     proth(number)
              except ValueError:
                     print(f'''ValueError: there is no {number}th Proth number''')
                     continue

              print(f'''The {number}th Proth number: {value}''')











"""simple docstring"""



def 						__lowercase	(  snake_case_    :    list		)  ->list:



    '''simple docstring'''







    for i in range(len(snake_case_		) - 1							,0							,-1		):
        __A       :		Union[str, Any]							=	False

        for j in range(snake_case_							,0							,-1		):
            if unsorted[j] < unsorted[j - 1]:
                __A					,			__A       :		Union[str, Any]							=	unsorted[j - 1], unsorted[j]
                __A       :		Optional[int]							=	True

        for j in range(snake_case_		):
            if unsorted[j] > unsorted[j + 1]:
                __A					,			__A       :		Optional[Any]							=	unsorted[j + 1], unsorted[j]
                __A       :		Union[str, Any]							=	True

        if not swapped:
            break
    return unsorted


if __name__ == "__main__":
       import doctest

       doctest.testmod()
       a_					=     input("""Enter numbers separated by a comma:\n""").strip()
       a_					=     [int(item) for item in user_input.split(""",""")]
       print(f'''{cocktail_shaker_sort(unsorted) = }''')




