fn main() { let stdin = std::io::read_to_string(std::io::stdin()).unwrap(); let mut stdin = stdin.split_ascii_whitespace(); let n: usize = stdin.next().unwrap().parse().unwrap(); let logs: Vec> = (0..n) .map(|_| { (0..n) .map(|_| stdin.next().unwrap().parse().unwrap()) .collect() }) .collect(); println!("{}", output(solve(n, logs))); } fn solve(n: usize, logs: Vec>) -> Option { let candidates = (0..n as u8) .filter(|&j| { logs.iter() .all(|l| l[j as usize] == "nyanpass" || l[j as usize] == "-") }) .collect::>(); if candidates.len() == 1 { Some(*candidates.last().unwrap() + 1) } else { None } } fn output(ans: Option) -> String { match ans { Some(ans) => ans.to_string(), None => String::from("-1"), } }