#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
const long long MOD = 998244353;
long long dp[2 * 100000 + 1000];
int main() {
  int N, K;
  cin >> N >> K;
  unordered_map<int, int> uo;
  for (int i = 0; i < (int)(K); i++) {
    int a, b;
    cin >> a >> b;
    for (int i = a; i <= b; i++) {
      uo[i] = 1;
    }
  }
  dp[0] = 1;
  for (int i = 0; i < (int)(N - 1); i++) {
    for (auto s : uo) {
      if (s.second == 0) continue;
      if (i + s.first < N) {
        dp[i + s.first] += dp[i];
        dp[i + s.first] %= MOD;
      }
    }
  }
  cout << dp[N - 1] << endl;
}
