




'''simple docstring'''





import operator as op


_SCREAMING_SNAKE_CASE							:   Optional[int]      		= "scaler.pt"
_SCREAMING_SNAKE_CASE							:   Tuple      		= "pytorch_model"
_SCREAMING_SNAKE_CASE							:   Optional[Any]      		= "random_states"
_SCREAMING_SNAKE_CASE							:   str      		= "optimizer"
_SCREAMING_SNAKE_CASE							:   Union[str, Any]      		= "scheduler"
_SCREAMING_SNAKE_CASE							:   Optional[int]      		= "pytorch_model.bin"
_SCREAMING_SNAKE_CASE							:   Dict      		= "pytorch_model.bin.index.json"
_SCREAMING_SNAKE_CASE							:   Dict      		= "model.safetensors"
_SCREAMING_SNAKE_CASE							:   Optional[int]      		= "model.safetensors.index.json"
_SCREAMING_SNAKE_CASE							:   Union[str, Any]      		= "1.10.2"
_SCREAMING_SNAKE_CASE							:   str      		= "py38"
_SCREAMING_SNAKE_CASE							:   Dict      		= "4.17.0"
_SCREAMING_SNAKE_CASE							:   Tuple      		= ["ml.p3.16xlarge", "ml.p3dn.24xlarge", "ml.p4dn.24xlarge"]
_SCREAMING_SNAKE_CASE							:   Optional[int]      		= ["FULL_SHARD", "SHARD_GRAD_OP", "NO_SHARD", "HYBRID_SHARD", "HYBRID_SHARD_ZERO2"]
_SCREAMING_SNAKE_CASE							:   Any      		= ["TRANSFORMER_BASED_WRAP", "SIZE_BASED_WRAP", "NO_WRAP"]
_SCREAMING_SNAKE_CASE							:   int      		= ["BACKWARD_PRE", "BACKWARD_POST", "NO_PREFETCH"]
_SCREAMING_SNAKE_CASE							:   Any      		= ["FULL_STATE_DICT", "LOCAL_STATE_DICT", "SHARDED_STATE_DICT"]
_SCREAMING_SNAKE_CASE							:   str      		= "2.0.1"
_SCREAMING_SNAKE_CASE							:   int      		= ["pdsh", "standard", "openmpi", "mvapich"]
_SCREAMING_SNAKE_CASE							:   Optional[Any]      		= ["default", "reduce-overhead", "max-autotune"]

_SCREAMING_SNAKE_CASE							:   Optional[int]      		= {">": op.gt, ">=": op.ge, "==": op.eq, "!=": op.ne, "<=": op.le, "<": op.lt}

# These are the args for `torch.distributed.launch` for pytorch < 1.9
_SCREAMING_SNAKE_CASE							:   Dict      		= [
    "nnodes",
    "nproc_per_node",
    "rdzv_backend",
    "rdzv_endpoint",
    "rdzv_id",
    "rdzv_conf",
    "standalone",
    "max_restarts",
    "monitor_interval",
    "start_method",
    "role",
    "module",
    "m",
    "no_python",
    "run_path",
    "log_dir",
    "r",
    "redirects",
    "t",
    "tee",
    "node_rank",
    "master_addr",
    "master_port",
]

_SCREAMING_SNAKE_CASE							:   Tuple      		= ["DEEPSPEED", "MULTI_GPU", "FSDP", "MEGATRON_LM"]
_SCREAMING_SNAKE_CASE							:   List[Any]      		= ["DEEPSPEED", "MULTI_XPU", "FSDP"]






"""simple docstring"""




def lowercase_  (   _snake_case						):
							SCREAMING_SNAKE_CASE__						:       Optional[int]           =   [1]

							SCREAMING_SNAKE_CASE__      ,      SCREAMING_SNAKE_CASE__      ,      SCREAMING_SNAKE_CASE__						:       str           =   0, 0, 0
							SCREAMING_SNAKE_CASE__						:       List[str]           =   ugly_nums[ia] * 2
							SCREAMING_SNAKE_CASE__						:       int           =   ugly_nums[ia] * 3
							SCREAMING_SNAKE_CASE__						:       Any           =   ugly_nums[ia] * 5

							for _ in range(1   ,_snake_case						):
														SCREAMING_SNAKE_CASE__						:       Union[str, Any]           =   min(_snake_case   ,_snake_case   ,_snake_case						)
														ugly_nums.append(_snake_case						)
														if next_num == next_a:
																					ia += 1
																					SCREAMING_SNAKE_CASE__						:       Optional[int]           =   ugly_nums[ia] * 2
														if next_num == next_a:
																					ia += 1
																					SCREAMING_SNAKE_CASE__						:       List[str]           =   ugly_nums[ia] * 3
														if next_num == next_a:
																					ia += 1
																					SCREAMING_SNAKE_CASE__						:       Tuple           =   ugly_nums[ia] * 5
							return ugly_nums[-1]


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

					testmod(verbose=True)
					print(f"""{ugly_numbers(2_0_0) = }""")




