fn main() { let stdin = std::io::read_to_string(std::io::stdin()).unwrap(); let mut stdin = stdin.split_ascii_whitespace(); let s: String = stdin.next().unwrap().parse().unwrap(); println!("{}", output(solve(s))); } fn solve(s: String) -> (u32, u32) { const TARGET_L: &[u8] = "(^^*)".as_bytes(); const TARGET_R: &[u8] = "(*^^)".as_bytes(); let (mut count_l, mut count_r) = (0, 0); s.into_bytes().chunks_exact(5).for_each(|s| match s { TARGET_L => count_l += 1, TARGET_R => count_r += 1, _ => unreachable!(), }); (count_l, count_r) } fn output((ans_l, ans_r): (u32, u32)) -> String { ans_l.to_string() + " " + &ans_r.to_string() }