use proconio::{input, marker::Chars}; fn main() { input! { n: Chars } let mut rem = 0; for (i, c) in n[..n.len() - 1].iter().copied().enumerate() { if c == '3' { print!("{}", '2'); for _ in i + 1..n.len() - 1 { print!("9") } if rem % 3 == 1 { println!("8"); } else { println!("9"); } return; } print!("{c}"); rem += c as usize - '0' as usize; rem %= 3; } if rem % 3 == 0 { println!("{}", (n.last().copied().unwrap() as usize - '0' as usize - 1)); } else { println!("{}", n.last().unwrap()); } }