fn getline() -> String { let mut ret = String::new(); std::io::stdin().read_line(&mut ret).unwrap(); ret } // https://yukicoder.me/problems/no/3370 (3.5) fn main() { let s = getline().trim().chars().collect::>(); let n = s.len(); let mut o = vec![]; for i in 0..n { if s[i] == 'A' { o.push(i); } } let mut ans = 1; const MOD: i64 = 998_244_353; for i in 0..o.len() { ans *= (o[i] - i + 1) as i64; ans %= MOD; } println!("{ans}"); }