MOD = 998244353 N, M, K = map(int, input().split()) A = sorted(map(int, input().split())) R = [] right = 0 for i in range(N): while right+1 < N and A[right+1]-A[i] <= K: right += 1 R.append(right) L = [] left = N-1 for i in reversed(range(N)): while 1 <= left and A[i]-A[left-1] <= K: left -= 1 L.append(left) L = L[::-1] dp = [0]*N for i in range(N): dp[i] = 1 for _ in range(M-1): cum = [0] for d in dp: cum.append((cum[-1]+d)%MOD) ndp = [] for i in range(N): ndp.append((cum[R[i]+1]-cum[L[i]])%MOD) dp = ndp print(sum(dp)%MOD)