use proconio::{input, marker::Chars}; fn main() { input! { s: Chars } let mut ans = vec![]; for &s in &s { match s { '<' => { ans.push((s, 1)); } '=' => { if let Some((prev, cnt)) = ans.last_mut() { if *prev == s { *cnt += 1; } else { ans.push((s, 1)); } } else { ans.push((s, 1)); } } '>' => { if ans.len() > 1 && ans[ans.len() - 2].0 == '<' && ans[ans.len() - 1].0 == '=' { ans.pop(); ans.pop(); } else { ans.push((s, 1)); } } _ => unreachable!(), } } let ans = ans.iter().map(|t| t.1).sum::(); println!("{ans}"); }