use std::io::*; use std::str::FromStr; //use std::num; //use std::cmp; //use std::collections::VecDeque; fn main() { let week1:String; let week2:String; let mut week: [char; 14] = ['\0'; 14]; let mut tmp = 0; let mut ans = 0; week1 = read(); week2 = read(); for _i in 0..week1.len() { //println!("{}", _i); week[_i] = week1.chars().nth(_i).unwrap(); //println!("{}", _i); } for _i in week1.len()..week1.len() + week2.len() { //println!("{}", _i); week[_i] = week2.chars().nth(_i - week1.len()).unwrap(); //println!("{}", _i); } /* for _i in 0..week.len() { print!("{}", week[_i]); } */ for _i in 0..week.len() { if week[_i] == 'o'{ tmp += 1; if _i == week.len() - 1 && ans < tmp{ ans = tmp; } }else if week[_i] == 'x'{ if ans < tmp{ ans = tmp; } tmp = 0; } } print!("{}",ans); } pub fn my_floor(x: f64) -> f64 { let rounded = (x * 1000.0).floor() / 1000.0; rounded } pub fn upper_lower(x: char) -> char { let result: char; if x.is_uppercase() { result = x.to_ascii_lowercase(); } else if x.is_lowercase() { result = x.to_ascii_uppercase(); } else { result = x; } result } pub fn max_2(x: usize, y: usize) -> usize { let result; if x >= y { result = x; } else { result = y; } result } pub fn max_3(x: isize, y: isize, z: isize) -> isize { let result; if x >= y && y >= z { result = x; } else if x >= z && z >= y { result = x; } else if y >= x && x >= z { result = y; } else if y >= z && z >= x { result = y; } else if z >= x && x >= y { result = z; } else { result = z; } result } pub fn min_3(x: isize, y: isize, z: isize) -> isize { let result; if x <= y && y <= z { result = x; } else if x <= z && z <= y { result = x; } else if y <= x && x <= z { result = y; } else if y <= z && z <= x { result = y; } else if z <= x && x <= y { result = z; } else { result = z; } result } pub fn read_line() -> String { let mut s: String = String::new(); std::io::stdin().read_line(&mut s).ok(); s } pub fn read() -> T { let stdin = stdin(); let stdin = stdin.lock(); let token: String = stdin .bytes() .map(|c| c.expect("failed to read char") as char) .skip_while(|c| c.is_whitespace()) .take_while(|c| !c.is_whitespace()) .collect(); token.parse().ok().expect("failed to parse token") } pub fn read_array() -> Vec { let array: String = read(); let chars: Vec = array.trim().chars().collect::>(); chars } pub fn get_data() -> Vec { let mut s: String = String::new(); std::io::stdin().read_line(&mut s).ok(); let vec: Vec = s .trim() .split_whitespace() .map(|e| e.parse().ok().unwrap()) .collect(); vec } pub fn get_chars() -> Vec { let mut s: String = String::new(); std::io::stdin().read_line(&mut s).ok(); let vec: Vec = s.trim().chars().collect::>(); vec }