#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, k;
  cin >> n >> k;
  map<long long, long long> h;
  for (int i = 0; i < k; i++) {
    long long k1, k2;
    cin >> k1 >> k2;
    h[k1]++;
    h[k2]++;
  }
  long long *dp = new long long[n + 1];
  for (int i = 0; i <= n; i++) {
    dp[i] = 0;
  }
  for (int i = 1; i <= n; i++) {
    map<long long, long long>::iterator it;
    for (it = h.begin(); it != h.end(); it++) {
      if (i - (it->first) == 1) {
        dp[i] = (((dp[i] % 998244353) + (1LL % 998244353)) % 998244353);
      } else if ((i - (it->first)) > 1) {
        dp[i] = (((dp[i] % 998244353) + ((dp[(i - (it->first))]) % 998244353)) %
                 998244353);
      }
    }
  }
  cout << (dp[n] % 998244353) << endl;
  return 0;
}
