




from manim import *
class 						UpperCAmelCase  (							UpperCAmelCase__     ):







						'''simple docstring'''





						def 			snake_case__		(		self				:	Tuple		):






							"""simple docstring"""






							snake_case_						       =	Rectangle(height=0.5			,      width=0.5		)
							snake_case_						       =	Rectangle(height=0.25			,      width=0.25		)
							snake_case_						       =	Rectangle(height=0.46			,      width=0.46		).set_stroke(width=0		)

							snake_case_						       =	[mem.copy() for i in range(6		)]
							snake_case_						       =	[mem.copy() for i in range(6		)]
							snake_case_						       =	VGroup(*__lowercase		).arrange(__lowercase			,      buff=0		)
							snake_case_						       =	VGroup(*__lowercase		).arrange(__lowercase			,      buff=0		)
							snake_case_						       =	VGroup(__lowercase			,      __lowercase		).arrange(__lowercase			,      buff=0		)
							snake_case_						       =	Text("CPU"			,      font_size=24		)
							snake_case_						       =	Group(__lowercase			,      __lowercase		).arrange(__lowercase			,      buff=0.5			,      aligned_edge=__lowercase		)
							cpu.move_to([-2.5, -0.5, 0]		)
							self.add(__lowercase		)

							snake_case_						       =	[mem.copy() for i in range(4		)]
							snake_case_						       =	VGroup(*__lowercase		).arrange(__lowercase			,      buff=0		)
							snake_case_						       =	Text("GPU"			,      font_size=24		)
							snake_case_						       =	Group(__lowercase			,      __lowercase		).arrange(__lowercase			,      buff=0.5			,      aligned_edge=__lowercase		)
							gpu.move_to([-1, -1, 0]		)
							self.add(__lowercase		)

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

							snake_case_						       =	Text("Model"			,      font_size=24		)
							snake_case_						       =	Group(__lowercase			,      __lowercase		).arrange(__lowercase			,      buff=0.5			,      aligned_edge=__lowercase		)
							model.move_to([3, -1.0, 0]		)
							self.add(__lowercase		)

							snake_case_						       =	[]
							snake_case_						       =	[]
							snake_case_						       =	[]

							for i, rect in enumerate(__lowercase		):
								rect.set_stroke(__lowercase		)

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

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

							self.add(*__lowercase			,      *__lowercase			,      *__lowercase		)

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

							snake_case_						       =	Text("Loaded Checkpoint"			,      font_size=24		)
							snake_case_						       =	Group(__lowercase			,      __lowercase		).arrange(__lowercase			,      buff=0.5			,      aligned_edge=__lowercase		)
							checkpoint.move_to([3, 0.5, 0]		)

							self.add(__lowercase		)

							snake_case_						       =	[]
							snake_case_						       =	[]

							for i, rect in enumerate(__lowercase		):
								snake_case_						       =	fill.copy().set_fill(__lowercase			,      opacity=0.7		)
								target.move_to(__lowercase		)
								ckpt_arr.append(__lowercase		)

								snake_case_						       =	target.copy()
								if i < 5:
									cpu_target.move_to(cpu_left_col_base[i + 1]		)
								else:
									cpu_target.move_to(cpu_right_col_base[i - 5]		)
								ckpt_cpu_arr.append(__lowercase		)
							self.add(*__lowercase			,      *__lowercase		)

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

							snake_case_						       =	MarkupText(
							    f"<b>Key:</b>\n\n<span fgcolor='{YELLOW}'>●</span> Empty Model"			,      font_size=18			,      )

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

							self.add(__lowercase			,      __lowercase		)

							snake_case_						       =	MarkupText(
							    f"<span fgcolor='{BLUE}'>●</span> Checkpoint"			,      font_size=18			,      )

							blue_text.next_to(__lowercase			,      DOWN * 2.4			,      aligned_edge=key_text.get_left()		)
							self.add(__lowercase		)

							snake_case_						       =	MarkupText(
							    f"Based on the passed in configuration, weights are stored in\na variety of np.memmaps on disk or to a particular device."			,      font_size=24			,      )
							step_a.move_to([2, 2, 0]		)

							snake_case_						       =	[meta_mem.copy() for i in range(6		)]
							snake_case_						       =	[meta_mem.copy() for i in range(6		)]
							snake_case_						       =	VGroup(*__lowercase		).arrange(__lowercase			,      buff=0		)
							snake_case_						       =	VGroup(*__lowercase		).arrange(__lowercase			,      buff=0		)
							snake_case_						       =	VGroup(__lowercase			,      __lowercase		).arrange(__lowercase			,      buff=0		)
							snake_case_						       =	Text("Disk"			,      font_size=24		)
							snake_case_						       =	Group(__lowercase			,      __lowercase		).arrange(__lowercase			,      buff=0.5			,      aligned_edge=__lowercase		)
							disk.move_to([-4.0, -1.25, 0]		)
							self.play(Write(__lowercase			,      run_time=3		)			,      Write(__lowercase			,      run_time=1		)			,      Create(__lowercase			,      run_time=1		)		)

							snake_case_						       =	[]
							for i, rect in enumerate(__lowercase		):
								snake_case_						       =	rect.copy()
								target.generate_target()
								target.target.move_to(disk_left_col_base[i]		).scale(0.5		)
								animations.append(MoveToTarget(__lowercase			,      run_time=1.5		)		)
							self.play(*__lowercase		)

							self.play(FadeOut(__lowercase		)		)

							snake_case_						       =	MarkupText(f"Then, the checkpoint is removed from memory\nthrough garbage collection."			,      font_size=24		)
							step_a.move_to([2, 2, 0]		)

							self.play(Write(__lowercase			,      run_time=3		)		)

							self.play(
							    FadeOut(__lowercase			,      __lowercase			,      *__lowercase			,      *__lowercase		)			,      )

							self.wait()






def 		lowerCamelCase__       (						_A				):







	'''simple docstring'''





	snake_case_						       =	1
	for i in range(1	,      num + 1				):
		fact *= i
	return fact


def 		lowerCamelCase__       (						_A				):







	'''simple docstring'''





	snake_case_						       =	0
	while number > 0:
		snake_case_						       =	number % 10
		sum_of_digits += last_digit
		snake_case_						       =	number // 10  # Removing the last_digit from the given number
	return sum_of_digits


def 		lowerCamelCase__       (						_A = 100				):







	'''simple docstring'''





	snake_case_						       =	factorial(_A				)
	snake_case_						       =	split_and_add(_A				)
	return result


if __name__ == "__main__":
		print(solution(int(input("Enter the Number: ").strip())))
