let f m n = let f0 i r = if n%i=0L then i else r let rec f1 i r = if i>2L then f1 (i-1L) (f0 i r) else r let f2 i = if i<>4L && n%2L=0L then i/2L else i match (f1 m 0L) with | 0L -> f2 n | i -> i let g = float >> sqrt >> floor >> int64 let h n = f (g n) n stdin.ReadLine() |> int64 |> h |> printfn "%d"