use std::io::*; use std::str::FromStr; fn solve(k: i64, v: Vec) -> bool { for i in 0..(k - 1) as usize { for j in (i + 1)..k as usize { let x = v[j] - v[i]; if x == 1 { if v[i] - 3 == 1 || v[i] - 5 == 1 || v[i] - 6 == 1 || 1 <= v[i] - 8 { return false; } } else if x == 3 { if v[i] - 2 == 1 || v[i] - 3 == 1 || 1 <= v[i] - 5 { return false; } } else if x == 5 { if v[i] - 1 == 1 || v[i] - 4 == 1 || v[i] - 6 == 1 || v[i] - 7 == 1 || 1 <= v[i] - 9 { return false; } } } } true } fn main() { let mut s = String::new(); stdin().read_line(&mut s).ok(); let mut itr = s.split_whitespace().map(|x| i64::from_str(x).unwrap()); let (_n, k) = (itr.next().unwrap(), itr.next().unwrap()); s.clear(); stdin().read_line(&mut s).ok(); let mut itr = s.split_whitespace().map(|x| i64::from_str(x).unwrap()); let mut v = Vec::new(); for _i in 0..k { v.push(itr.next().unwrap()); } if solve(k, v) { println!("Yes"); } else { println!("No"); } }