fn main() { let mut nk = String::new(); std::io::stdin().read_line(&mut nk).ok(); let nk: Vec = nk.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let n = nk[0]; let k = nk[1]; if k == n * (n+1) / 2 { println!("0"); return; } if k == 0 { println!("1"); return; } let k = n * (n+1) / 2 - k; let a = (1..=n).collect::>(); let mut idx = 0usize; let mut summary = 0usize; for i in 0..n { summary += a[i]; while summary > k { summary -= a[idx]; idx += 1; } if k == summary { println!("1"); return; } } println!("2"); }