let iota ?(start=0) ?(step=1) cnt =
  let rec doit i acc =
    if i <= 0 then acc
    else doit (i - 1) (start + step*(i - 1) :: acc) in
  doit cnt []

let () =
  let n = read_int () in
  let rec doit n i =
    if n mod 2 <> 0 then i
    else doit (n / 2) (i + 1) in
  let doit n = doit n 0 in
  iota ~start:1 n
  |> List.map doit
  |> List.fold_left (fun (i, (ans, m)) e -> (i + 1, if e > m then (i, e) else (ans, m))) (1, (0, min_int))
  |> (fun (_, (ans, _)) -> ans)
  |> Printf.printf "%d\n"