fn main() { let mut n = String::new(); std::io::stdin().read_line(&mut n).ok(); let n: usize = n.trim().parse().unwrap(); let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); let s: Vec = s.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let mut t = String::new(); std::io::stdin().read_line(&mut t).ok(); let t: Vec = t.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let s1 = s.iter().filter(|&&v| v == 1).count(); let t1 = t.iter().filter(|&&v| v == 1).count(); let mut result = vec![vec![0; n]; n]; for i in 0..n { if s[i] == 2 { for j in 0..n { result[i][j] = 1; } } if t[i] == 2 { for j in 0..n { result[j][i] = 1; } } } let summary = result.iter().map(|v| v.iter().sum::()).sum::(); let s_has_2 = s.iter().filter(|&&v| v == 2).count() > 0; let t_has_2 = t.iter().filter(|&&v| v == 2).count() > 0; if s_has_2 && t_has_2 { println!("{}", summary); } else if s_has_2 { println!("{}", summary + s1); } else if t_has_2 { println!("{}", summary + t1); } else { println!("{}", s1.max(t1)); } }