#include <bits/stdc++.h>
using namespace std;
vector<long long> dp;
vector<int> vec;
long long dfs(int i) {
  if (dp[i]) return dp[i];
  for (int j = 0; j < (int)(vec.size()); j++) {
    if (i - vec[j] >= 0) {
      dp[i] += dfs(i - vec[j]);
      dp[i] %= 998244353;
    }
  }
  return dp[i];
}
int main() {
  long long N, K;
  cin >> N >> K;
  vector<long long> imos(N + 2);
  for (long long i = 0; i < K; i++) {
    long long L, R;
    cin >> L >> R;
    imos[L]++;
    imos[++R]--;
  }
  for (long long i = 0; i < N + 1; i++) imos[i + 1] += imos[i];
  for (int i = (1); i < (int)((int)N + 1); i++)
    if (imos[i] > 0) vec.push_back(i);
  dp.resize(N + 1);
  dp[1] = 1;
  cout << dfs(N) << endl;
}
