n = gets.to_i arr = (1..n).to_a.map { |i| i.digits(2).count(1) } check = [false] * n pos = 0 cnt = 1 while pos + 1 != n # p pos # p check if check[pos] puts -1 exit 0 end check[pos] = true pos = pos+1 + arr[pos] > n ? pos - arr[pos] : pos + arr[pos] cnt += 1 end puts cnt