fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); let mut t: Vec = vec![1]; for i in 2.. { if i < n { t.push(t[i - 2] + i); } else { break; } } let mut ans = 3; if t.iter().any(|e| e == &n) { println!("{}", 1); return; } for i in 0..t.len() / 2 + 1 { if t.iter().any(|e| e == &(n - t[i])) { ans = 2; } } println!("{}", ans); }