#![allow(dead_code, unused_imports, unused_macros, non_snake_case)] fn main() { input! { S: Chars, } let mut ans = S.len(); let mut prev_lteq = vec![]; for c in S { if c == '<' { prev_lteq.push(1); } else if c == '=' { if let Some(n) = prev_lteq.last_mut() { *n += 1; } } else if c == '>' { if let Some(n) = prev_lteq.pop() { if n <= 1 { prev_lteq.clear(); } else { ans -= n + 1; } } } } println!("{ans}"); } type Int = i64; const MOD: Int = 1_000_000_007; const INF: Int = 1_000_000_000; const YESNO: [&'static str; 2] = ["Yes", "No"]; use proconio::{input, marker::{Usize1, Chars}}; fn yes() { println!("{}", YESNO[0]); } fn no() { println!("{}", YESNO[1]); } fn yesno(c: bool) { println!("{}", if c { YESNO[0] } else { YESNO[1] }); }