#include <bits/stdc++.h>
using namespace std;
long long int dp[(long long int)(2e5 + 2)];
long long int MOD = 998244353;
int main() {
  memset(dp, 0, sizeof dp);
  int n, k;
  cin >> n >> k;
  vector<pair<int, int> > v(k);
  for (int i = 0; i < k; i++) {
    cin >> v[i].first >> v[i].second;
  }
  dp[0] = 1;
  vector<long long int> pref(n + 1);
  long long int pref_sum = 0;
  for (int i = 0; i < n; i++) {
    dp[i] += pref_sum;
    for (int j = 0; j < k; j++) {
      int L = v[j].first;
      int R = v[j].second;
      if (i + L < n) pref[i + L] += dp[i];
      if (pref[i + L] > MOD) pref[i + L] -= MOD;
      if (i + R + 1 < n) {
        pref[i + R + 1] -= dp[i];
        if (pref[i + R + 1] < 0) pref[i + R + 1] += MOD;
      }
    }
    pref_sum += pref[i + 1];
    if (pref_sum > MOD) pref_sum -= MOD;
    if (pref_sum < 0) pref_sum += MOD;
  }
  cout << dp[n - 1] % MOD << endl;
}
