fn main() { let mut ns = String::new(); std::io::stdin().read_line(&mut ns).ok(); let ns: Vec = ns.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let n = ns[0]; let mut s = ns[1]; let mut result = vec![]; let mut prev = n; while s > 0 { let minus = prev.min(s); s -= minus; prev = minus - 1; result.push(minus); } println!("{}", result.len()); result.reverse(); let result: Vec = result.into_iter().map(|v| v.to_string()).collect(); println!("{}", result.join(" ")); }