from collections import deque def bfs(start, goal): """[summary] dfs: stack, pop() bfs: queue, popleft() Parameters ---------- start : [int] [description] goal : [int] [description] """ queue = deque() for i in graph[start]: queue.append((i)) visited[i] = 1 while queue: q = queue.popleft() # ゴールの条件(無くても良い) # if q == goal and d == 0: # return dist = visited[q] for i in graph[q]: if i <= n and visited[i] > dist + 1: queue.append((i)) visited[i] = dist + 1 n, k = map(int, input().split()) graph = [list() for _ in range(n + 1)] INF = 10 ** 9 visited = [INF] * (n + 1) visited[1] = 0 for i in range(1, n + 1): if i + 3 <= n: graph[i].append(i + 3) if i * 2 <= n: graph[i].append(i * 2) bfs(1, n) ans = visited[n] if ans == INF or ans > k: print("NO") else: print("YES")