def isprime(n):
for i in range(2,int(n**0.5)+1):
if n%i==0:
return i
return -1
n,k=map(int, input().split())
f=0
for i in range(1,k+1):
if n%i!=i-1:
f=1
break
if f==0:
print('YES')
else:
print('NO')
#include <cstdio>
#include <set>
typedef long long ll;
int main(){
ll n, k; scanf("%lld %lld", &n, &k);
std::set<ll> s;
bool possible(true);
for(long p = 1; p <= k; p++){
if(s.count(n % p)){possible = false; break;}
s.insert(n % p);
}
puts(possible ? "Yes" : "No");
return 0;
}
1670D - Very Suspicious | 1141B - Maximal Continuous Rest |
1341A - Nastya and Rice | 1133A - Middle of the Contest |
385A - Bear and Raspberry | 1311B - WeirdSort |
1713F - Lost Array | 236B - Easy Number Challenge |
275A - Lights Out | 147A - Punctuation |
253A - Boys and Girls | 1327E - Count The Blocks |
984A - Game | 12B - Correct Solution |
1355B - Young Explorers | 485A - Factory |
628A - Tennis Tournament | 1436B - Prime Square |
1707B - Difference Array | 1422C - Bargain |
1611F - ATM and Students | 660A - Co-prime Array |
1692F - 3SUM | 1470A - Strange Birthday Party |
190D - Non-Secret Cypher | 1721B - Deadly Laser |
1721C - Min-Max Array Transformation | 1721A - Image |
1180C - Valeriy and Deque | 557A - Ilya and Diplomas |