#include <bits/stdc++.h>
using namespace std;
void op() {}
int C(pair<int, int> &a, pair<int, int> &b) { return a.first < b.first; }
void dfs(vector<vector<int> > &vec, int i, int nw, int k, int n) {
  long long int res = 1;
  if (i == n && nw == k) {
    res = (res + 1) % 998244353;
    return;
  } else if (nw > k)
    return;
  else {
    for (auto itr : vec[i]) {
      dfs(vec, itr, nw + 1, k, n);
    }
  }
}
long long power(long long x, int y) {
  long long res = 1;
  while (y > 0) {
    if (y & 1) res = (res * x) % 998244353;
    y = y >> 1;
    x = (x * x) % 998244353;
  }
  return res % 998244353;
}
long long int dp[200009];
int main() {
  op();
  long long int n, k, a, b;
  cin >> n >> k;
  set<long long int> s;
  for (int i = 0; i < k; ++i) {
    cin >> a >> b;
    s.insert(a);
    s.insert(b);
  }
  dp[1] = 1;
  for (long long int i = 2; i <= n; ++i) {
    for (auto itr : s) {
      if ((i - itr) > 0)
        dp[i] = (dp[i] + dp[i - itr]) % 998244353;
      else
        break;
    }
  }
  cout << dp[n];
}
