#include <bits/stdc++.h>
using namespace std;
const long long N = 8e6 + 7, mod = 998244353, root = 3;
long long x[N], n, m, i, j, ma, mb, inv, res, b[N], ans[N], L, R[N];
long long pow_mod(long long x, long long n) {
  long long res = 1;
  while (n) {
    if (n & 1) res = 1LL * x * res % mod;
    x = 1LL * x * x % mod;
    n >>= 1;
  }
  return res;
}
void ntt(long long* x, long long type) {
  for (long long i = 0; i < n; ++i)
    if (i < R[i]) swap(x[i], x[R[i]]);
  for (long long i = 1; i < n; i <<= 1) {
    long long wn = pow_mod(root, type == 1 ? (mod - 1) / (i << 1)
                                           : (mod - 1 - (mod - 1) / (i << 1)));
    for (long long p = i << 1, j = 0; j < n; j += p) {
      long long w = 1;
      for (long long k = 0; k < i; ++k, w = 1LL * wn * w % mod) {
        long long l = x[j + k], r = 1LL * x[j + k + i] * w % mod;
        x[j + k] = (l + r) % mod;
        x[j + k + i] = (l - r + mod) % mod;
      }
    }
  }
}
void fpow(long long sz) {
  ntt(ans, 1);
  ntt(x, 1);
  while (sz) {
    if (sz & 1) {
      for (long long i = 0; i < n; i++) ans[i] = 1ll * ans[i] * x[i] % mod;
    }
    for (long long i = 0; i < n; i++) x[i] = 1ll * x[i] * x[i] % mod;
    sz >>= 1;
  }
  ntt(ans, -1);
}
int32_t main() {
  ans[0] = 1;
  long long sz, k, tx;
  cin >> sz >> k;
  for (long long i = 1; i <= k; i++) {
    scanf("%d", &tx);
    x[tx] = 1;
  }
  for (m = 200000 * 9 + 7, n = 1; n <= m; n <<= 1) L++;
  for (i = 0; i < n; ++i) R[i] = (R[i >> 1] >> 1) | ((i & 1) << L - 1);
  fpow(sz / 2);
  long long cnt = 0;
  inv = pow_mod(n, mod - 2);
  for (long long i = 0; i < n; i++)
    cnt =
        (cnt + (ans[i] % mod * inv % mod) * (ans[i] % mod * inv % mod) % mod) %
        mod;
  cout << cnt << endl;
}
