#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
int A[2000005], B[2000005], r[2000005], w[2][2000005], ans, num, m, len;
int ksm(int a, int b) {
  int s = 1;
  while (b > 0) {
    if (b & 1) s = (long long)s * a % mod;
    a = (long long)a * a % mod, b >>= 1;
  }
  return s;
}
void pre() {
  w[0][1] = w[1][1] = 1;
  for (int i = 1; i <= len; i++) {
    r[i] = (r[i >> 1] >> 1) + (i & 1) * (len >> 1);
    w[0][i] = ksm(3, (mod - 1) / i);
    w[1][i] = ksm(w[0][i], mod - 2);
  }
}
void NTT(int *a, int flag) {
  for (int i = 0; i < len; i++)
    if (i < r[i]) swap(a[i], a[r[i]]);
  for (int i = 1; i < len; i <<= 1)
    for (int j = 0; j < len; j += i + i)
      for (int r = 0, k = 1; r < i;
           r++, k = (long long)k * w[flag][i + i] % mod) {
        int x = a[j + r], y = (long long)a[i + j + r] * k % mod;
        a[j + r] = (x + y) % mod, a[i + j + r] = (x - y + mod) % mod;
      }
  int invn = ksm(len, mod - 2);
  if (flag == 1)
    for (int i = 0; i < len; i++) a[i] = (long long)a[i] * invn % mod;
}
int main() {
  scanf("%d%d", &num, &m);
  for (int i = 1, x; i <= m; i++) scanf("%d", &x), A[x] = 1;
  for (len = 1; len <= num * 5; len <<= 1)
    ;
  pre();
  NTT(A, 0);
  for (int i = 0; i <= len; i++) B[i] = ksm(A[i], num / 2);
  NTT(B, 1);
  for (int i = 0; i <= num * 5; i++)
    ans = (ans + (long long)B[i] * B[i] % mod) % mod;
  printf("%d\n", ans);
  return 0;
}
