#include <bits/stdc++.h>
using namespace std;
int main() {
  long long num, q;
  long long waru = 998244353;
  cin >> num >> q;
  vector<long long> vecL(num + 1, 0);
  vector<long long> vecR;
  vector<long long> vec(num + 1, 0);
  long long Max = 0;
  for (long long i = 0; i < q; i++) {
    long long a, b;
    cin >> a >> b;
    a--;
    b--;
    Max = max(max(a, b), Max);
    for (int j = a; j <= b; j++) {
      vecL.at(j) = 1;
    }
  }
  for (long long i = 0; i <= Max; i++) {
    if (vecL.at(i) == 1) {
      vecR.push_back(i + 1);
    }
  }
  vec.at(0) = 1;
  for (long long i = 0; i <= num; i++) {
    if (vec.at(i) == 0) continue;
    for (long long j = 0; j < vecR.size(); j++) {
      if (i + vecR.at(j) > num) break;
      vec.at(i + vecR.at(j)) = (vec.at(i + vecR.at(j)) + vec.at(i)) % waru;
    }
  }
  cout << vec.at(num - 1);
}
