#include <bits/stdc++.h>
using namespace std;
long long go(int n, vector<int> &s, vector<long long> &dp) {
  if (n < 1) {
    return 0;
  }
  if (n == 1) {
    return 1;
  }
  if (dp[n] != -1)
    return dp[n];
  else {
    long long tmp = 0;
    for (int ss : s) {
      tmp += go(n - ss, s, dp) % 998244353;
    }
    dp[n] = tmp % 998244353;
    return dp[n];
  }
}
int main() {
  int n, k;
  int l, r;
  cin >> n >> k;
  vector<int> s;
  for (int i = 0; i < k; i++) {
    cin >> l >> r;
    for (int j = l; j <= r; j++) {
      s.push_back(j);
    }
  }
  vector<long long> dp(n + 1, -1);
  dp[1] = 1;
  long long ans = go(n, s, dp);
  cout << ans % 998244353 << '\n';
  return 0;
}
