function Main(input) { function countTarget(str, target) { return (str.match(new RegExp(target, "g")) || []).length; } function rec(num, c) { if (array[num] && array[num] <= c || num > N) return array[num] = c const k = countTarget(num.toString(2), "1") rec(num + k, c + 1) rec(num - k, c + 1) } const N = parseInt(input.trim()) let array = [-1, 1] rec(2, 2) console.log(array[N] ? array[N] : -1) } Main(require("fs").readFileSync("/dev/stdin", "utf8"))