fn main() { let grid = (0..3).map(|_| { let mut temp = String::new(); std::io::stdin().read_line(&mut temp).ok(); let temp = temp.trim(); temp.chars().collect::>() }) .collect::>(); let odds = (0..3).map(|i| (0..3).filter(|&j| (i+j) % 2 == 1).fold(true, |x, y| x && (grid[0][1] == grid[i][y]))).fold(true, |x, y| x && y); let evens = (0..3).map(|i| (0..3).filter(|&j| (i+j) % 2 == 0).fold(true, |x, y| x && (grid[0][0] == grid[i][y]))).fold(true, |x, y| x && y); if odds && evens && (grid[0][0] != grid[0][1]) { println!("Yes"); } else { println!("No"); } }