import sys input = lambda : sys.stdin.readline().rstrip() sys.setrecursionlimit(max(1000, 10**9)) write = lambda x: sys.stdout.write(x+"\n") n,k = list(map(int, input().split())) a = list(map(int, input().split())) from heapq import heapify, heappop as hpp, heappush as hp h = [-item for item in a] heapify(h) ren = 0 from collections import deque l = [] while h: v = hpp(h) v *= -1 # print(l,v) nl = [] flg = False for item in l: d = abs(item-v) if d==1: if v-3>=0: hp(h, -(v-3)) flg = True elif d==3: if v-2>=0: hp(h, -(v-2)) elif d==5: if v-1>=0: hp(h, -(v-1)) if 0<=d<5: nl.append(item) nl.append(v) if flg: ren += 1 else: ren = 0 l = nl pv = v if ren>=4 or v==1: ans = "No" break else: ans = "Yes" print(ans)