





"""simple docstring"""



def 	__lowercase  (     snake_case_						:						Tuple       ,snake_case_						:						Union[str, Any]		)     ->str:



				'''simple docstring'''







				__A					:		Union[str, Any]						=  len(snake_case_		)
				# Create a stack and push index of fist element to it
				__A					:		Optional[Any]						=  []
				st.append(0		)

				# Span value of first element is always 1
				__A					:		List[Any]						=  1

				# Calculate span values for rest of the elements
				for i in range(1       ,snake_case_		):
								# Pop elements from stack while stack is not
								# empty and top of stack is smaller than price[i]
								while len(snake_case_		) > 0 and price[st[0]] <= price[i]:
												st.pop()

								# If stack becomes empty, then price[i] is greater
								# than all elements on left of it, i.e. price[0],
								# price[1], ..price[i-1]. Else the price[i]  is
								# greater than elements after top of stack
								__A					:		List[Any]						=  i + 1 if len(snake_case_		) <= 0 else (i - st[0])

								# Push this element to stack
								st.append(snake_case_		)







def 	__lowercase  (     snake_case_						:						Tuple       ,snake_case_						:						Any		)     ->Tuple:



				'''simple docstring'''







				for i in range(0       ,snake_case_		):
								print(arr[i]       ,end=''' '''		)


# Driver program to test above function
a_				=    [10, 4, 5, 90, 120, 80]
a_				=    [0 for i in range(len(price) + 1)]

# Fill the span values in array S[]
calculation_span(price, S)




print_array(S, len(price))











"""simple docstring"""



def 	__lowercase  (     snake_case_						:						Union[str, Any]		)     ->Optional[int]:



    '''simple docstring'''







    __A					:		Dict						=  [701, 301, 132, 57, 23, 10, 4, 1]
    for gap in gaps:
        for i in range(snake_case_       ,len(snake_case_		)		):
            __A					:		Tuple						=  collection[i]
            __A					:		Union[str, Any]						=  i
            while j >= gap and collection[j - gap] > insert_value:
                __A					:		Optional[int]						=  collection[j - gap]
                j -= gap
            if j != i:
                __A					:		Optional[int]						=  insert_value
    return collection


if __name__ == "__main__":
       from doctest import testmod

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




