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"); } }