from collections import Counter MOD = 998244353 LIM = 10**6 is_prime = [True] * (LIM + 1) is_prime[0] = is_prime[1] = False for i in range(2, LIM + 1): if not is_prime[i]: continue for j in range(2 * i, LIM + 1, i): is_prime[j] = False primes = [i for i in range(LIM + 1) if is_prime[i]] N, K = [int(s) for s in input().split()] A = [int(s) for s in input().split()] count_a = Counter(A) ans = 1 for p in primes: count = [0] * 30 for i in range(p, LIM + 1, p): for j in range(30): if p**j > LIM or i % (p**j) != 0: break count[j] += count_a[i] if all(count[i] > N - N // K for i in range(30)): continue ans *= p ** max(i for i in range(30) if count[i] > N // 2) ans %= MOD print(ans)