use std::collections::BinaryHeap; fn main() { let mut nxm = String::new(); std::io::stdin().read_line(&mut nxm).ok(); let nxm: Vec = nxm.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let n = nxm[0]; let x = nxm[1]; let m = nxm[2]; let mut a = String::new(); std::io::stdin().read_line(&mut a).ok(); let a: Vec = a.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let mut used = 0usize; let mut cnt = 0usize; for i in (0..n).rev() { while (a[i] >> cnt) >= x { cnt += 1; used += i+1; } } if used > m { println!("No"); } else { println!("Yes"); } }