const INF: usize = 1usize << 60; fn main() { let mut nk = String::new(); std::io::stdin().read_line(&mut nk).ok(); let nk: Vec = nk.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let n = nk[0]; let k = nk[1]; let mut dp = vec![INF; n+1]; dp[1] = 0; for i in 1..n { if i+3 <= n { dp[i+3] = dp[i+3].min(dp[i] + 1); } if i*2 <= n { dp[i*2] = dp[i*2].min(dp[i] + 1); } } if dp[n] <= k { println!("YES"); } else { println!("NO"); } }