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, dim in graph[start][0]: queue.append((i)) visited[i] = 1 while queue: q, d = queue.popleft() # ゴールの条件(無くても良い) # if q == goal and d == 0: # return dist = visited[q] for i, di in graph[q][d]: if visited[i] > dist + 1: queue.append((i, di)) visited[i] = dist + 1 n, k = map(int, input().split()) graph = [list() for _ in range(n + 1)] INF = 10 ** 9 visited = [INF] * (n + 1) for i in range(1, n) + 1: graph[i].append(i + 3) graph[i].append(i * 2) bfs(1, n) ans = visited[n] if ans == INF or ans > k: print("NO") else: print("YES")