"""simple docstring"""





import operator


def    lowercase_   (   _lowerCamelCase:	Union[str, Any]						,   _lowerCamelCase:	Dict = False						,   _lowerCamelCase:	Optional[int] = None      ) ->      list:



       '''simple docstring'''

       __lowerCamelCase					:		Union[str, Any]		   =     operator.lt if reverse else operator.gt
       __lowerCamelCase					:		List[str]		   =     solution or []

       if not arr:
              return solution

       __lowerCamelCase					:		Tuple		   =     [arr.pop(0      )]
       for i, item in enumerate(lowerCamelCase_      ):
              if _operator(lowerCamelCase_						,   sublist[-1]      ):
                     sublist.append(lowerCamelCase_      )
                     arr.pop(lowerCamelCase_      )

    #  merging sublist into solution list
       if not solution:
              solution.extend(lowerCamelCase_      )
       else:
              while sublist:
                     __lowerCamelCase					:		List[Any]		   =     sublist.pop(0      )
                     for i, xx in enumerate(lowerCamelCase_      ):
                            if not _operator(lowerCamelCase_						,   lowerCamelCase_      ):
                                   solution.insert(lowerCamelCase_						,   lowerCamelCase_      )
                                   break
                     else:
                            solution.append(lowerCamelCase_      )

       strand_sort(lowerCamelCase_						,   lowerCamelCase_						,   lowerCamelCase_      )
       return solution


if __name__ == "__main__":
    assert strand_sort([4, 3, 5, 1, 2]) == [1, 2, 3, 4, 5]
    assert strand_sort([4, 3, 5, 1, 2], reverse=True) == [5, 4, 3, 2, 1]
"""simple docstring"""





def    lowercase_   (   _lowerCamelCase:	int = 600851475143      ) ->      int:



							'''simple docstring'''

							try:
														__lowerCamelCase					:		Optional[Any]		   =     int(_lowerCamelCase      )
							except (TypeError, ValueError):
														raise TypeError("Parameter n must be int or castable to int."      )
							if n <= 0:
														raise ValueError("Parameter n must be greater than or equal to one."      )
							__lowerCamelCase					:		Union[str, Any]		   =     2
							__lowerCamelCase					:		int		   =     0
							if n == 2:
														return 2
							while n > 2:
														while n % i != 0:
																					i += 1
														__lowerCamelCase					:		Dict		   =     i
														while n % i == 0:
																					__lowerCamelCase					:		Union[str, Any]		   =     n // i
														i += 1
							return int(_lowerCamelCase      )


if __name__ == "__main__":
				print(F"""{solution() = }""")