import strutils, sequtils const inf = 19970430 var n:int = stdin.readLine.parseInt dp = newSeqWith(n+1, inf) bits = newSeq[int](n+1) for i in 0.. n: var cp = i while cp > 0: if (cp and 1)==1: bits[i] += 1 cp = cp shr 1 dp[1] = 1 for loop in 0.. <100: #(ΦωΦ)<100回ぐらいやればいいよね for i in 1.. n: if i+bits[i] <= n: dp[i+bits[i]] = min(dp[i+bits[i]], dp[i]+1) if i-bits[i] >= 1: dp[i-bits[i]] = min(dp[i-bits[i]], dp[i]+1) var res = dp[n] if res==inf: res = -1 echo res