#include <bits/stdc++.h>
using namespace std;
int dp[200005];
vector<int> V;
long long numWays(int ind, int n) {
  if (ind == n) {
    return 1;
  }
  if (ind > n) {
    return 0;
  }
  if (dp[ind] != -1) {
    return dp[ind];
  }
  long long ans = 0;
  for (int i = 0; i < V.size(); i++) {
    if (ind + V[i] <= n) {
      ans = ans + numWays(ind + V[i], n) % 998244353;
    }
  }
  return dp[ind] = ans % 998244353;
}
int main() {
  int n, k;
  cin >> n >> k;
  fill(dp, dp + 200005, -1);
  for (int i = 0; i < k; i++) {
    int x, y;
    cin >> x >> y;
    for (int j = x; j <= y; j++) {
      V.push_back(j);
    }
  }
  sort(V.begin(), V.end());
  cout << numWays(1, n) << endl;
  return 0;
}
