
import os
import string
import sys


UpperCAmelCase_       :   List[Any]   =       1 << 8

UpperCAmelCase_       :   int   =       {
    'tab': ord('\t'),
    'newline': ord('\r'),
    'esc': 27,
    'up': 65 + ARROW_KEY_FLAG,
    'down': 66 + ARROW_KEY_FLAG,
    'right': 67 + ARROW_KEY_FLAG,
    'left': 68 + ARROW_KEY_FLAG,
    'mod_int': 91,
    'undefined': sys.maxsize,
    'interrupt': 3,
    'insert': 50,
    'delete': 51,
    'pg_up': 53,
    'pg_down': 54,
}

UpperCAmelCase_       :   List[Any]   =       KEYMAP['up']
UpperCAmelCase_       :   int   =       KEYMAP['left']

if sys.platform == "win32":
 UpperCAmelCase_       :   str   =       []
 UpperCAmelCase_       :   List[str]   =       {
     b'\xe0H': KEYMAP['up'] - ARROW_KEY_FLAG,
     b'\x00H': KEYMAP['up'] - ARROW_KEY_FLAG,
     b'\xe0P': KEYMAP['down'] - ARROW_KEY_FLAG,
     b'\x00P': KEYMAP['down'] - ARROW_KEY_FLAG,
     b'\xe0M': KEYMAP['right'] - ARROW_KEY_FLAG,
     b'\x00M': KEYMAP['right'] - ARROW_KEY_FLAG,
     b'\xe0K': KEYMAP['left'] - ARROW_KEY_FLAG,
     b'\x00K': KEYMAP['left'] - ARROW_KEY_FLAG,
 }

for i in range(10):
 UpperCAmelCase_       :   Dict   =       ord(str(i))







def 		A_       (	):



      """simple docstring"""




      if os.name == "nt":
            import msvcrt

            _lowerCamelCase				:   List[str]								=   "mbcs"
            # Flush the keyboard buffer
            while msvcrt.kbhit():
                  msvcrt.getch()
            if len(_lowerCAmelCase							) == 0:
                  # Read the keystroke
                  _lowerCamelCase				:   Any								=   msvcrt.getch()

                  # If it is a prefix char, get second part
                  if ch in (b"\x00", b"\xe0"):
                        _lowerCamelCase				:   Tuple								=   ch + msvcrt.getch()
                        # Translate actual Win chars to bullet char types
                        try:
                              _lowerCamelCase				:   Optional[int]								=   chr(WIN_KEYMAP[cha]							)
                              WIN_CH_BUFFER.append(chr(KEYMAP["mod_int"]							)							)
                              WIN_CH_BUFFER.append(_lowerCAmelCase							)
                              if ord(_lowerCAmelCase							) in (
                                  KEYMAP["insert"] - 1 << 9,
                                  KEYMAP["delete"] - 1 << 9,
                                  KEYMAP["pg_up"] - 1 << 9,
                                  KEYMAP["pg_down"] - 1 << 9,
                              ):
                                    WIN_CH_BUFFER.append(chr(126							)							)
                              _lowerCamelCase				:   str								=   chr(KEYMAP["esc"]							)
                        except KeyError:
                              _lowerCamelCase				:   Any								=   cha[1]
                  else:
                        _lowerCamelCase				:   Dict								=   ch.decode(_lowerCAmelCase							)
            else:
                  _lowerCamelCase				:   Union[str, Any]								=   WIN_CH_BUFFER.pop(0							)
      elif os.name == "posix":
            import termios
            import tty

            _lowerCamelCase				:   Optional[Any]								=   sys.stdin.fileno()
            _lowerCamelCase				:   Dict								=   termios.tcgetattr(_lowerCAmelCase							)
            try:
                  tty.setraw(_lowerCAmelCase							)
                  _lowerCamelCase				:   List[str]								=   sys.stdin.read(1							)
            finally:
                  termios.tcsetattr(_lowerCAmelCase				,	termios.TCSADRAIN				,	_lowerCAmelCase							)
      return ch







def 		A_       (	):



      """simple docstring"""




      _lowerCamelCase				:   Optional[int]								=   get_raw_chars()
      if ord(_lowerCAmelCase							) in [KEYMAP["interrupt"], KEYMAP["newline"]]:
            return char

      elif ord(_lowerCAmelCase							) == KEYMAP["esc"]:
            _lowerCamelCase				:   str								=   get_raw_chars()
            if ord(_lowerCAmelCase							) == KEYMAP["mod_int"]:
                  _lowerCamelCase				:   Dict								=   get_raw_chars()
                  if ord(_lowerCAmelCase							) >= KEYMAP["arrow_begin"] - ARROW_KEY_FLAG and ord(_lowerCAmelCase							) <= KEYMAP["arrow_end"] - ARROW_KEY_FLAG:
                        return chr(ord(_lowerCAmelCase							) + ARROW_KEY_FLAG							)
                  else:
                        return KEYMAP["undefined"]
            else:
                  return get_raw_chars()

      else:
            if char in string.printable:
                  return char
            else:
                  return KEYMAP["undefined"]

'''simple docstring'''






from __future__ import annotations







def 		A_       (	_lowerCAmelCase   :    list[int]				,	_lowerCAmelCase   :    int				,	_lowerCAmelCase   :    int				,	_lowerCAmelCase   :    int							):



      """simple docstring"""




      if (direction == 1 and array[indexa] > array[indexa]) or (
          direction == 0 and array[indexa] < array[indexa]
      ):
            _lowerCamelCase						,		_lowerCamelCase				:   List[Any]								=   array[indexa], array[indexa]







def 		A_       (	_lowerCAmelCase   :    list[int]				,	_lowerCAmelCase   :    int				,	_lowerCAmelCase   :    int				,	_lowerCAmelCase   :    int							):



      """simple docstring"""




      if length > 1:
            _lowerCamelCase				:   Optional[int]								=   int(length / 2							)
            for i in range(_lowerCAmelCase				,	low + middle							):
                  comp_and_swap(_lowerCAmelCase				,	_lowerCAmelCase				,	i + middle				,	_lowerCAmelCase							)
            bitonic_merge(_lowerCAmelCase				,	_lowerCAmelCase				,	_lowerCAmelCase				,	_lowerCAmelCase							)
            bitonic_merge(_lowerCAmelCase				,	low + middle				,	_lowerCAmelCase				,	_lowerCAmelCase							)







def 		A_       (	_lowerCAmelCase   :    list[int]				,	_lowerCAmelCase   :    int				,	_lowerCAmelCase   :    int				,	_lowerCAmelCase   :    int							):



      """simple docstring"""




      if length > 1:
            _lowerCamelCase				:   Optional[Any]								=   int(length / 2							)
            bitonic_sort(_lowerCAmelCase				,	_lowerCAmelCase				,	_lowerCAmelCase				,	1							)
            bitonic_sort(_lowerCAmelCase				,	low + middle				,	_lowerCAmelCase				,	0							)
            bitonic_merge(_lowerCAmelCase				,	_lowerCAmelCase				,	_lowerCAmelCase				,	_lowerCAmelCase							)


if __name__ == "__main__":
 UpperCAmelCase_       :   Any   =       input('Enter numbers separated by a comma:\n').strip()
 UpperCAmelCase_       :   Optional[int]   =       [int(item.strip()) for item in user_input.split(',')]

 bitonic_sort(unsorted, 0, len(unsorted), 1)
 print('\nSorted array in ascending order is: ', end='')
 print(*unsorted, sep=', ')

 bitonic_merge(unsorted, 0, len(unsorted), 0)
 print('Sorted array in descending order is: ', end='')
 print(*unsorted, sep=', ')