macro_rules! read { ($x:ident, $v:expr, $idx:expr, $type:ty) => { let $x:$type = $v[$idx].clone().parse().unwrap(); }; ( $($x:ident:$t:ty),* ) => { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); let input:Vec = s.trim() .split_whitespace() .map(|e| e.parse().ok().unwrap()) .collect(); let mut idx:i64 = -1; $( idx += 1; read!($x, input, idx as usize, $t); )* }; } fn main() { read!(n:usize); read!(s:String); let cs = s.chars().collect::>(); let ans = (0..cs.len()-2).fold(0, |acc1, ui| { if cs[ui] == 'U' { acc1 + (ui..cs.len()-1).fold(0, |acc2, mi| { if cs[mi] == 'M' && mi+mi-ui < cs.len() && cs[mi+mi-ui] == 'G' { acc2 + 1 } else { acc2 } }) } else { acc1 } }); println!("{}", ans); }