fn main() { proconio::input!(mut n: i64, mut b: i64, c: i64); let mut steps = 0i64; steps += 1; for _ in 0 .. c { steps += 1; if n == 0 { break; } steps += 1; n = g(b, n) - 1; b += 1; if n >= 1_000_000_000 { println!("Yes\nNo"); return; } } println!("Yes\nYes\n{steps}"); } fn g(b: i64, n: i64) -> i64 { if n < b || n >= 2_000_000_000 { n } else { let x = g(b, n / b); if x >= 2_000_000_000 { return x; } else { x.saturating_mul(b + 1).saturating_add(n % b) } } }