#![allow(non_snake_case)] use std::cmp; use std::io::{ self, prelude::* }; macro_rules! pick { ($tokens:expr) => { $tokens.next().unwrap().parse().expect("parse error") } } fn main() { let mut s = String::new(); io::stdin().read_to_string(&mut s).expect("i/o error"); let mut tokens = s.split_whitespace(); let N: usize = pick!(tokens); let M: usize = pick!(tokens); let mut v = vec![0; N]; for _ in 0..M { for i in 0..N { let a: i64 = pick!(tokens); v[i] += a; } let mut lo = 0; let mut hi = 0; loop { let s = v[lo..hi].iter().sum::(); match s.cmp(&777) { cmp::Ordering::Equal => { println!("YES"); return; }, cmp::Ordering::Less => { hi += 1; } cmp::Ordering::Greater => { lo += 1; } } if hi > v.len() { break; } } } println!("NO"); }