Imp is watching a documentary about cave painting. [Image] 

Some numbers, carved in chaotic order, immediately attracted his attention. Imp rapidly proposed a guess that they are the remainders of division of a number n by all integers i from 1 to k. Unfortunately, there are too many integers to analyze for Imp.

Imp wants you to check whether all these remainders are distinct. Formally, he wants to check, if all $n \text{mod} i$, 1 ≤ i ≤ k, are distinct, i. e. there is no such pair (i, j) that:   1 ≤ i < j ≤ k,  $n \operatorname{mod} i = n \operatorname{mod} j$, where $x \operatorname{mod} y$ is the remainder of division x by y. 


-----Input-----

The only line contains two integers n, k (1 ≤ n, k ≤ 10^18).


-----Output-----

Print "Yes", if all the remainders are distinct, and "No" otherwise.

You can print each letter in arbitrary case (lower or upper).


-----Examples-----
Input
4 4

Output
No

Input
5 3

Output
Yes



-----Note-----

In the first sample remainders modulo 1 and 4 coincide.

Difficulty: interview

Starter code:

Solutions:
def main():
	n, k = map(int, input().split())
	for i in range(1, k + 1):
		if (n % i != (i - 1)):
			print("No")
			return
	print("Yes")

main()

#! /usr/bin/env python3

import math
import sys


def lcm(u, v):
    return u * v // math.gcd(u, v)


def main():
    n, k = list(map(int, input().split()))
    m = 1
    for i in range(1, k + 1):
        m = lcm(m, i)
        if m - 1 > n:
            print('No')
            return
    if (n + 1) % m == 0:
        print('Yes')
    else:
        print('No')


def __starting_point():
    main()


__starting_point()

n, k = input().split()
n, k = int(n), int(k)

ans = True

n += 1
for i in range(1, min(100, k+1)):
    if (n % i) != 0:
        ans = False

if ans:
    print('Yes')
else:
    print('No')


n, k = input().split()
n = int(n)
k = int(k)

if n < 0 or k < 0:
    pass
else:
    rem = []
    found = False
    for i in range(1, k+1):
        check = n % i
        if check in rem:
            print("No\n")
            found = True
            break
        rem.append(check)
    if not found:
        print("Yes\n")


n, k = map(int, input().split())
mas = []
for i in range(1, k + 1):
    q = n%i
    if q in mas:
        print("No")
        return
    else:
        mas.append(q)
print("Yes")

n, k = map(int, input().split())

s = set()

for i in range(1, k + 1):
	cur = n % i
	if cur in s:
		print('No')
		return
	s.add(cur)

print('Yes')

import sys

#f = open('input', 'r')
f = sys.stdin

n,k = list(map(int, f.readline().split()))

ans = 'Yes'
for tk in range(1, k+1):
  if len(set(n%(i+1) for i in range(tk))) != tk:
    ans = 'No'
    break

print(ans)


def gcd(a, b):
    if b == 0:
        return a
    return gcd(b, a % b)

def lcm(a, b):
    return a // gcd(a, b) * b;

n, k = list(map(int, input().split()))
inf = 10 ** 18
x = 1

for i in range(1, k + 1):
    x = lcm(x, i)
    if x > inf:
        break

if x > inf or n % x != x - 1:
    print("No")
else:
    print("Yes")



def remainderSet(n, k):
    rem=set()
    for i in range(1,k+1):
        r=n%i
        if r in rem:
            return False
        else:
            rem.add(r)
    return True

def test():
    print(remainderSet(4,4))
    print(remainderSet(5,3))

def nia():
    s=input()
    while len(s)==0:
        s=input()
    s=s.split()
    iVal=[];
    for i in range (len(s)):
        iVal.append(int(s[i]))
    return iVal

def solve():
    arr=nia()
    if remainderSet(arr[0], arr[1]):
        print("Yes")
    else:
        print("No")
        
solve()


s=input()
s=s.split()
n=int(s[0])
k=int(s[1])
b=1
a=[]
for i in range(1,k+1):
    c=n%i
    a.append(c)
    if c in a[:-1]:
        print('No')
        b=0
        break
if b==1:
    print('Yes')


n,k=list(map(int,input().split()))
l=[]
c=0
for i in range(1,k+1):
    l.append(n%i)
    p=set(l)
    if len(p)!=len(l):
        print ("No")
        c=1
        break
if c==0:
    print ("Yes")



n, k = [int(i) for i in input().split()]

s = set()

for i in range(1, k+1):
    if n % i in s:
        print("No")
        break
    s.add(n % i)
else:
    print("Yes")

n,k=list(map(int,input().split()))
a=set()
for i in range(1,k+1):
    if n%i in a:
        print('No')
        return
    else:
        a.add(n%i)
print('Yes')


n, k = list(map(int, input().split()))

ans = "Yes"
for i in range(2, k + 1):
    if n % i != i - 1:
        ans = "No"
        break
    elif 1e6 < i:
        break
print(ans)


n,k = list(map(int,input().split()))

for i in range(1,min(k+1,10000000)):
    if n%i != i-1:
        print('No')
        break
else:
    print('Yes')



def __starting_point():
    n,k = input().strip().split()
    n=int(n) ; k=int(k)
    a = {}
    for i in range(1,k+1):
        if n%i in a:
            print('No')
            return
        else:
            a[n%i] = 1
    print('Yes')
__starting_point()

n, k = list(map(int, input().split()))
c = 1
z = 1
ok = 1

for i in range(1, k + 1):
    c = z
    while z % i != 0:
        z += c
    if z > n + 10:
        ok = 0
        break
if (n + 1) % z == 0 and ok:
    print('Yes')
else:
    print('No')


from fractions import gcd
def lcm(a, b):
    return (a // gcd(a, b)) * b
    
n, k = map(int, input().split())
if k == 1:
    print("Yes")
    return
n1 = 1
for i in range(1, k + 1):
    n1 = lcm(n1, i)
    if n % n1 != n1 - 1:
        print("No")
        return
if n % n1 == n1 - 1:
    print("Yes")
    return
print("No")

n, k = map(int, input().strip().split())

if k == 1:
    print('Yes')
else:
    # k! - 1 must divide into n
    '''
        prod = 1
    count = 2
    while prod < n:
        prod *= count
        if n % (prod - 1) == 0 and count >= k:
            #res = n // (prod - 1)
            # note: existance means k must be really small
            rems = [n % i for i in range(1, k + 1)]
            #print(rems)
            if len(set(rems)) == len(rems):
                print('Yes')
                break
        count += 1
    else:
        print('No')
    '''
    if k > 50000:
        print('No')
    else:
        rems = [n % i for i in range(1, k + 1)]
        #print(rems)
        print('Yes' if len(set(rems)) == len(rems) else 'No')