{ Delphi } // // Problem : Chain // Contest : UOI-2007 (Kremenchug) // Type : Solution // Date : March, 28th, 2007 // Version : 1.0 // Author : Andriy Stasyuk // Language : Pascal // Compiler : Delphi 7 // Algorithm: Author Solution // program chain; {$APPTYPE CONSOLE} var f: text; N, M, pow2: Int64; begin assign(f, 'chain.dat'); reset(f); readln(f, N); close(f); M := 0; pow2 := 2; while N > pow2 * (M+1) - 1 do begin pow2 := pow2 * 2; M := M + 1; end; assign(f, 'chain.sol'); rewrite(f); writeln(f, M); close(f); end.