use std::collections::VecDeque; fn n_o_o(mut n:usize) -> usize { let mut noo:usize = 0; while n>0 { noo += n%2; n /= 2; } noo } fn main() { let mut s = String::new(); std::io::stdin().read_line(&mut s).expect("err"); let n : usize= s.trim().parse().unwrap(); const MAXN: usize = 10010; let mut bq : [usize; MAXN] = [0; MAXN]; let mut cque : VecDeque = VecDeque::new(); bq[1] = 1; cque.push_back(1); while !cque.is_empty() { let c = cque.pop_front().unwrap(); if c == n {println!("{}", bq[c]); return}; let b1cnt = n_o_o(c); let forward = c + b1cnt; let backward = c - b1cnt; if bq[forward]==0 && 0