import math def sieve(limit): sieve = [True] * (limit + 1) sieve[0] = sieve[1] = False for i in range(2, int(math.sqrt(limit)) + 1): if sieve[i]: sieve[i*i : limit+1 : i] = [False] * len(sieve[i*i : limit+1 : i]) primes = [i for i, is_prime in enumerate(sieve) if is_prime] return primes def main(): import sys input = sys.stdin.read().split() N = int(input[0]) M = int(input[1]) if M == 0: print(N) return primes = sieve(1500000) if len(primes) < M: print(0) return primes_subset = primes[:M] product = 1.0 for p in primes_subset: product *= (p - 1) / p result = N * product print(math.floor(result)) if __name__ == "__main__": main()