from collections import deque, defaultdict as dd from copy import deepcopy from heapq import heappop, heappush, heappushpop, heapify INF = 1 << 60 MOD = 998244353 def fast_mod_pow(x, p, m): res = 1 t = x z = p while z > 0: if z % 2 == 1: res = (res * t) % m t = (t * t) % m z //= 2 return res def extended_gcd(a, b): if b == 0: return a, 1, 0 else: g, x, y = extended_gcd(b, a % b) return g, y, x - (a // b) * y def mod_inverse(a, m): _, x, _ = extended_gcd(a, m) return (x % m + m) % m def main(): n, m, k = map(int, input().split()) a = list(map(int, input().split())) memo = [0 for _ in range(n+1)] memo[0] = 1 dic = dd(lambda: 0) for v in a: dic[v] += 1 for key, v in dic.items(): for i in range(1, n//key+1): memo[key*i] += v p = [fast_mod_pow(i, k, MOD)for i in range(m+1)] div = mod_inverse(p[m], MOD) ans = 0 for i in range(1, n+1): ans = (ans+(MOD+1-p[m-memo[i]]*div%MOD)%MOD)%MOD print(ans) if __name__ == "__main__": main()