#include using namespace std; using ll=long long; static const ll INF=1000000000000000; using Graph=vector>; ll N,K; ll d[200005]; void bfs(const Graph &G,ll s){ fill(d,d+N+1,INF);d[s]=0; queueque;que.push(s); while(!que.empty()){ ll v=que.front();que.pop(); for(auto u:G[v]){ if(d[u]!=INF)continue; d[u]=d[v]+1;que.push(u); } } } int main(){ cin>>N>>K; Graph G(N+1);if(2<=N)G[2].push_back(1); for(ll i=3;i<=N;i++){ G[i].push_back(i-3); if(i%2==0)G[i].push_back(i/2); }bfs(G,N); if(d[1]<=K)cout<<"YES"<