#include <bits/stdc++.h>
using namespace std;
int d[10];
long long pmod(long long a, long long b) { return ((a % b) + b) % b; }
int extended_euclid(int a, int b, int &x, int &y) {
  int xx = y = 0;
  int yy = x = 1;
  while (b) {
    int q = a / b;
    int t = b;
    b = a % b;
    a = t;
    t = xx;
    xx = x - q * xx;
    x = t;
    t = yy;
    yy = y - q * yy;
    y = t;
  }
  return a;
}
int mod_inverse(int a, int n) {
  int x, y;
  int d = extended_euclid(a, n, x, y);
  if (d > 1) return -1;
  return pmod(x, n);
}
long long powmod(long long a, long long b, long long m) {
  long long res = 1;
  while (b > 0)
    if (b & 1)
      res = (res * a) % m, --b;
    else
      a = (a * a) % m, b >>= 1;
  return res % m;
}
const int mod = 998244353;
const int m = 1 << 20;
const int root = 565042129;
const int root_1 = 950391366;
const int root_pw = 1 << 20;
void fft(vector<int> &a, bool invert) {
  int n = a.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(a[i], a[j]);
  }
  for (int len = 2; len <= n; len <<= 1) {
    int wlen = invert ? root_1 : root;
    for (int i = len; i < root_pw; i <<= 1)
      wlen = (int)(1LL * wlen * wlen % mod);
    for (int i = 0; i < n; i += len) {
      int w = 1;
      for (int j = 0; j < len / 2; j++) {
        int u = a[i + j], v = (int)(1LL * a[i + j + len / 2] * w % mod);
        a[i + j] = u + v < mod ? u + v : u + v - mod;
        a[i + j + len / 2] = u - v >= 0 ? u - v : u - v + mod;
        w = (int)(1LL * w * wlen % mod);
      }
    }
  }
  if (invert) {
    int n_1 = mod_inverse(n, mod);
    for (int &x : a) x = (int)(1LL * x * n_1 % mod);
  }
}
void solve() {
  int n, k;
  cin >> n >> k;
  vector<int> f(m, 0);
  for (int i = 0; i < k; ++i) {
    cin >> d[i];
    f[d[i]]++;
  }
  n /= 2;
  fft(f, false);
  for (int i = 0; i < m; ++i) {
    f[i] = powmod(f[i], n, 998244353);
  }
  fft(f, true);
  long long result = 0;
  for (auto x : f) {
    result += ((long long)x) * x;
    result %= 998244353;
  }
  cout << result << endl;
}
int main() {
  ios_base::sync_with_stdio(false);
  cout << setprecision(12) << fixed;
  solve();
  return 0;
}
