/* -*- coding: utf-8 -*- * * 1465.cc: No.1465 Archaea - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_N = 200000; /* typedef */ typedef queue qi; /* global variables */ int ds[MAX_N + 1]; /* subroutines */ /* main */ int main() { int n, k; scanf("%d%d", &n, &k); memset(ds, -1, sizeof(ds)); ds[1] = 0; qi q; q.push(1); while (! q.empty()) { int u = q.front(); q.pop(); if (u == n) break; if (ds[u] >= k) continue; int vd = ds[u] + 1; if (u + 3 <= n && ds[u + 3] < 0) { ds[u + 3] = vd; q.push(u + 3); } if (u * 2 <= n && ds[u * 2] < 0) { ds[u * 2] = vd; q.push(u * 2); } } if (ds[n] >= 0) puts("YES"); else puts("NO"); return 0; }