




"""simple docstring"""







from manim import *

class 				snake_case_			(					lowerCamelCase_			):







   """simple docstring"""




   def   UpperCAmelCase__			(		self)				->   Union[str, Any]:
       UpperCamelCase              =	Rectangle(height=0.5       ,					width=0.5)
       UpperCamelCase              =	Rectangle(height=0.46       ,					width=0.46).set_stroke(width=0)

       UpperCamelCase              =	[mem.copy() for i in range(6)]
       UpperCamelCase              =	[mem.copy() for i in range(6)]
       UpperCamelCase              =	VGroup(*lowerCamelCase_).arrange(lowerCamelCase_       ,					buff=0)
       UpperCamelCase              =	VGroup(*lowerCamelCase_).arrange(lowerCamelCase_       ,					buff=0)
       UpperCamelCase              =	VGroup(lowerCamelCase_       ,					lowerCamelCase_).arrange(lowerCamelCase_       ,					buff=0)
       UpperCamelCase              =	Text('''CPU'''       ,					font_size=2_4)
       UpperCamelCase              =	Group(lowerCamelCase_       ,					lowerCamelCase_).arrange(lowerCamelCase_       ,					buff=0.5       ,					aligned_edge=lowerCamelCase_)
       cpu.move_to([-2.5, -0.5, 0])
       self.add(lowerCamelCase_)

       UpperCamelCase              =	[mem.copy() for i in range(4)]
       UpperCamelCase              =	VGroup(*lowerCamelCase_).arrange(lowerCamelCase_       ,					buff=0)
       UpperCamelCase              =	Text('''GPU'''       ,					font_size=2_4)
       UpperCamelCase              =	Group(lowerCamelCase_       ,					lowerCamelCase_).arrange(lowerCamelCase_       ,					buff=0.5       ,					aligned_edge=lowerCamelCase_)
       gpu.move_to([-1, -1, 0])
       self.add(lowerCamelCase_)

       UpperCamelCase              =	[mem.copy() for i in range(6)]
       UpperCamelCase              =	VGroup(*lowerCamelCase_).arrange(lowerCamelCase_       ,					buff=0)

       UpperCamelCase              =	Text('''Model'''       ,					font_size=2_4)
       UpperCamelCase              =	Group(lowerCamelCase_       ,					lowerCamelCase_).arrange(lowerCamelCase_       ,					buff=0.5       ,					aligned_edge=lowerCamelCase_)
       model.move_to([3, -1.0, 0])
       self.add(lowerCamelCase_)

       UpperCamelCase              =	[]
       for i, rect in enumerate(lowerCamelCase_):
           rect.set_stroke(lowerCamelCase_)
           # target = fill.copy().set_fill(YELLOW, opacity=0.7)
           # target.move_to(rect)
           # self.add(target)

           UpperCamelCase              =	Rectangle(height=0.46 / 4       ,					width=0.46 / 3).set_stroke(width=0.0).set_fill(lowerCamelCase_       ,					opacity=0.7)

           if i == 0:
               cpu_target.next_to(cpu_left_col_base[0].get_corner(DOWN + LEFT)       ,					buff=0.02       ,					direction=lowerCamelCase_)
               cpu_target.set_x(cpu_target.get_x() + 0.1)
           elif i == 3:
               cpu_target.next_to(cpu_targs[0]       ,					direction=lowerCamelCase_       ,					buff=0.0)
           else:
               cpu_target.next_to(cpu_targs[i - 1]       ,					direction=lowerCamelCase_       ,					buff=0.0)
           self.add(lowerCamelCase_)
           cpu_targs.append(lowerCamelCase_)

       UpperCamelCase              =	[mem.copy() for i in range(6)]
       UpperCamelCase              =	VGroup(*lowerCamelCase_).arrange(lowerCamelCase_       ,					buff=0)

       UpperCamelCase              =	Text('''Loaded Checkpoint'''       ,					font_size=2_4)
       UpperCamelCase              =	Group(lowerCamelCase_       ,					lowerCamelCase_).arrange(lowerCamelCase_       ,					aligned_edge=lowerCamelCase_       ,					buff=0.4)
       checkpoint.move_to([3, 0.5, 0])

       UpperCamelCase              =	Square(side_length=2.2)
       key.move_to([-5, 2, 0])

       UpperCamelCase              =	MarkupText(
           F'<b>Key:</b>\n\n<span fgcolor=\'{YELLOW}\'>●</span> Empty Model'       ,					font_size=1_8       ,					)

       key_text.move_to([-5, 2.4, 0])

       self.add(lowerCamelCase_       ,					lowerCamelCase_)

       UpperCamelCase              =	MarkupText(
           F'<span fgcolor=\'{BLUE}\'>●</span> Checkpoint'       ,					font_size=1_8       ,					)

       blue_text.next_to(lowerCamelCase_       ,					DOWN * 2.4       ,					aligned_edge=key_text.get_left())

       UpperCamelCase              =	MarkupText(
           F'Next, a <i><span fgcolor="{BLUE}">second</span></i> model is loaded into memory,\nwith the weights of a <span fgcolor="{BLUE}">single shard</span>.'       ,					font_size=2_4       ,					)
       step_a.move_to([2, 2, 0])
       self.play(Write(lowerCamelCase_)       ,					Write(lowerCamelCase_))

       self.play(Write(lowerCamelCase_       ,					run_time=1)       ,					Create(lowerCamelCase_       ,					run_time=1))

       UpperCamelCase              =	[]
       UpperCamelCase              =	[]
       for i, rect in enumerate(lowerCamelCase_):
           UpperCamelCase              =	fill.copy().set_fill(lowerCamelCase_       ,					opacity=0.7)
           target.move_to(lowerCamelCase_)
           first_animations.append(GrowFromCenter(lowerCamelCase_       ,					run_time=1))

           UpperCamelCase              =	target.copy()
           cpu_target.generate_target()
           if i < 5:
               cpu_target.target.move_to(cpu_left_col_base[i + 1])
           else:
               cpu_target.target.move_to(cpu_right_col_base[i - 5])
           second_animations.append(MoveToTarget(lowerCamelCase_       ,					run_time=1.5))

       self.play(*lowerCamelCase_)
       self.play(*lowerCamelCase_)
       self.wait()





def lowercase    (  SCREAMING_SNAKE_CASE )			->							str:


			'''simple docstring'''







			SCREAMING_SNAKE_CASE_								=						len(SCREAMING_SNAKE_CASE )
			while cur > 1:
						# Find the maximum number in arr
						SCREAMING_SNAKE_CASE_								=						arr.index(max(arr[0:cur] ) )
						# Reverse from 0 to mi
						SCREAMING_SNAKE_CASE_								=						arr[mi::-1] + arr[mi + 1 : len(SCREAMING_SNAKE_CASE )]
						# Reverse whole list
						SCREAMING_SNAKE_CASE_								=						arr[cur - 1 :: -1] + arr[cur : len(SCREAMING_SNAKE_CASE )]
						cur -= 1
			return arr


if __name__ == "__main__":
				SCREAMING_SNAKE_CASE__     :     List[str]		    =       input("Enter numbers separated by a comma:\n").strip()
				SCREAMING_SNAKE_CASE__     :     Optional[int]		    =       [int(item) for item in user_input.split(",")]
				print(pancake_sort(unsorted))
