m,n,k = map(int,input().split()) s = [int(_) for _ in input().split()] s.sort() dp = [1]*m mod = 998244353 syaku = [] left = 0 right = 0 rui = [0] for j in range(m): while True: if s[left] >= s[j]-k: break else: left += 1 while True: if right == m: break if s[right] <= s[j]+k: right += 1 else: break syaku.append((left,right)) rui = [0]*(m+1) for i in range(1,n): for j in range(m): rui[j+1] = ((rui[j]+dp[j])%mod) for j in range(m): left = syaku[j][0] right = syaku[j][1] dp[j] = (rui[right]-rui[left])%mod ans = 0 for i in dp: ans = (ans+i)%mod print(ans%mod)