def main(): from math import sqrt,sin,cos,tan,ceil,radians,floor,gcd,exp,log,log10,log2,factorial,fsum from heapq import heapify, heappop, heappush from bisect import bisect_left, bisect_right from copy import deepcopy import copy import random from collections import deque,Counter,defaultdict from itertools import permutations,combinations from decimal import Decimal,ROUND_HALF_UP #tmp = Decimal(mid).quantize(Decimal('0'), rounding=ROUND_HALF_UP) from functools import lru_cache, reduce #@lru_cache(maxsize=None) from operator import add,sub,mul,xor,and_,or_,itemgetter INF = 10**18 mod1 = 10**9+7 mod2 = 998244353 #DecimalならPython #再帰ならPython!!!!!!!!!!!!!!!!!!!!!!!!!! ''' 大丈夫なところは全部行ける 全部行けるけど、行かなくていい場所、いってはいけない場所もある いや、組み合わせ的に全部行かないとダメっぽい いや、行かなくてよいときもあるな 制約的には各Kにおいて結構大胆な探索ができそう ''' N,K = map(int, input().split()) A = list(map(int, input().split())) st = set() for i in range(K): st.add(A[i]) if N in st: print('No') exit() if N > 10**5: f = True for i in range(K): if A[i]+3 in st or A[i]+1 in st or A[i]+5 in st: f = False if f: print('Yes') else: print('No') else: dp = [0]*(N+1) for i in range(K): dp[A[i]] = 1 for i in reversed(range(1,N+1)): if dp[i] == 1: if i >= 4 and dp[i-1] == 1: dp[i-4] = 1 if i >= 5 and dp[i-3] == 1: dp[i-5] = 1 if i >= 6 and dp[i-5] == 1: dp[i-6] = 1 if dp[1] == 1: print('No') else: print('Yes') if __name__ == '__main__': main()