object Main { def countBinNumDigits(num:Long) = { assert (num >= 0L) @scala.annotation.tailrec def loop (num:Long) (result:Int) :Int = { if (num == 0L) result else { val (nextNum, nextResult) = (num >> 1, result + 1) loop (nextNum) (nextResult) } } loop (num) (0) } def countHit(num:Long) = { assert (num > 0L) val cntHit = countBinNumDigits(num) - 1 val rem = num - (1L << cntHit) if (rem == 0) cntHit else cntHit + 1 } def main(args: Array[String]): Unit = { val num = readLine().toLong val ans = countHit(num) println(ans) } }