let isEnable N = let powOf2Set = let powOf2Seq = Seq.unfold (fun x -> if x>(10.0**18.0|>int64) then None else Some(x,x*2L)) 1L powOf2Seq |> Set.ofSeq let lis = [3L .. (min (N-1L) 130L)] lis |> List.tryFind(fun x -> let y = N-x not (powOf2Set.Contains x) && not (powOf2Set.Contains y)) let N = stdin.ReadLine() |> int64 N |> isEnable |> function | None -> sprintf "-1" | Some(x) -> sprintf "%i %i" x (N-x) |> printfn "%s"