MOD = 998244353 def main(): import sys input = sys.stdin.read().split() ptr = 0 N = int(input[ptr]) ptr += 1 M = int(input[ptr]) ptr += 1 k = int(input[ptr]) ptr += 1 C = list(map(int, input[ptr:ptr + k])) ptr += k max_x = 2 * N - 1 ways = [0] * (max_x + 1) ways[0] = 1 prefix = [0] * (max_x + 2) prefix[0] = 0 prefix[1] = ways[0] for x in range(1, max_x + 1): l = max(0, x - 6) r = x - 1 if l == 0: sum_ways = prefix[r + 1] - prefix[l] else: sum_ways = (prefix[r + 1] - prefix[l]) % MOD ways[x] = sum_ways % MOD prefix[x + 1] = (prefix[x] + ways[x]) % MOD T = 0 for x in range(max(0, 2 * N - 6), 2 * N): d_min = 2 * N - x if d_min < 1: cnt = 6 else: cnt = max(0, 6 - d_min + 1) if cnt <= 0: continue T = (T + ways[x] * cnt) % MOD for c in C: r_i = c % N avoid = [0] * (max_x + 1) if 0 % N != r_i: avoid[0] = 1 else: avoid[0] = 0 avoid_prefix = [0] * (max_x + 2) avoid_prefix[1] = avoid[0] for x in range(1, max_x + 1): if x % N == r_i: avoid[x] = 0 avoid_prefix[x + 1] = avoid_prefix[x] continue l = max(0, x - 6) r = x - 1 if l == 0: sum_av = (avoid_prefix[r + 1] - avoid_prefix[l]) % MOD else: sum_av = (avoid_prefix[r + 1] - avoid_prefix[l]) % MOD avoid[x] = sum_av % MOD avoid_prefix[x + 1] = (avoid_prefix[x] + avoid[x]) % MOD S_i = 0 for x in range(max(0, 2 * N - 6), 2 * N): d_min = 2 * N - x if d_min < 1: cnt = 6 else: cnt = max(0, 6 - d_min + 1) if cnt <= 0: continue S_i = (S_i + avoid[x] * cnt) % MOD ans = (T - S_i) % MOD print(ans) if __name__ == '__main__': main()