let f a = a/2L let g a = (2L*(f a)+a) let rec h a b c = if a<>0L then h (f a) (b + (f a)) (max c (g a)) else abs (c-b) (stdin.ReadLine >> int64 >> fun n -> h n n (2L*n)) () |> printfn "%d"