#include <bits/stdc++.h>
using namespace std;
const int MOD = 998244353;
const int root = 565042129;
const int root_inv = 950391366;
const int root_pw = 1 << 20;
vector<int> a, b;
int pw(int a, int b) {
  int ret = 1;
  while (b > 0) {
    if (b & 1) ret = (int)((1ll * ret * a) % MOD);
    a = (int)((1ll * a * a) % MOD);
    b /= 2;
  }
  return ret;
}
map<int, int> c1[3];
void fft(vector<int>& x, bool invert) {
  int n = x.size();
  for (int i = 1, j = 0; i < n; i++) {
    int bit = n >> 1;
    for (; j & bit; bit >>= 1) j ^= bit;
    j ^= bit;
    if (i < j) swap(x[i], x[j]);
  }
  for (int len = 2; len <= n; len <<= 1) {
    int wlen = invert ? root_inv : root;
    if (c1[invert ? 1 : 0].find(len) == c1[invert ? 1 : 0].end()) {
      for (int i = len; i < root_pw; i <<= 1)
        wlen = (int)((1ll * wlen * wlen) % MOD);
      c1[invert ? 1 : 0][len] = wlen;
    } else
      wlen = c1[invert ? 1 : 0][len];
    for (int i = 0; i < n; i += len) {
      int w = 1;
      for (int j = 0; j < len / 2; j++) {
        int u = x[i + j], v = (int)((1ll * x[i + j + len / 2] * w) % MOD);
        x[i + j] = (u + v) % MOD;
        x[i + j + len / 2] = (u - v + MOD) % MOD;
        w = (int)((1ll * w * wlen) % MOD);
      }
    }
  }
  if (invert) {
    int tmp = 0;
    if (c1[2].find(n) == c1[2].end()) {
      tmp = pw(n, MOD - 2);
      c1[2][n] = tmp;
    } else
      tmp = c1[2][n];
    for (int& i : x) i = (int)((1ll * i * tmp) % MOD);
  }
}
vector<int> multiply(vector<int> const& x, vector<int> const& y) {
  vector<int> fx(x.begin(), x.end()), fy(y.begin(), y.end());
  int n = 1;
  while (n < x.size() + y.size()) n <<= 1;
  fx.resize(n);
  fy.resize(n);
  fft(fx, false);
  fft(fy, false);
  for (int i = 0; i < n; i++) fx[i] = (int)((1ll * fx[i] * fy[i]) % MOD);
  fft(fx, true);
  while (fx.back() == 0) fx.pop_back();
  return fx;
}
int main() {
  int n, k;
  scanf("%d %d", &n, &k);
  a.resize(10);
  for (int i = 0; i < k; i++) {
    int x;
    scanf("%d", &x);
    a[x]++;
  }
  vector<int> ans;
  ans.emplace_back(1);
  n /= 2;
  while (n > 0)
    if (n & 1)
      ans = multiply(ans, a), n--;
    else
      a = multiply(a, a), n /= 2;
  int ret = 0;
  for (int i = 0; i < ans.size(); i++)
    ret = (ret + (int)((1ll * ans[i] * ans[i]) % MOD)) % MOD;
  printf("%d\n", ret);
  return 0;
}
