from collections import defaultdict, deque, Counter # from functools import cache # import copy from itertools import combinations, permutations, product, accumulate, groupby, chain # from more_itertools import distinct_permutations from heapq import heapify, heappop, heappush, heappushpop import math import bisect from pprint import pprint from random import randint, shuffle, randrange # from sortedcontainers import SortedSet, SortedList, SortedDict import sys # sys.setrecursionlimit(2000000) input = lambda: sys.stdin.readline().rstrip('\n') inf = float('inf') mod1 = 10**9+7 mod2 = 998244353 def ceil_div(x, y): return -(-x//y) ################################################# N, M, K = map(int, input().split()) A = Counter(map(int, input().split())) C = [0]*(1+N) for k, v in A.items(): i = k while i <= N: C[i] += v i += k ans = N for c in C[1:]: ans -= pow(M-c, K, mod2) * pow(M, -K, mod2) % mod2 ans %= mod2 print(ans)