#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
const int mod = 998244353;
int n, k, lft[N], rgt[N];
int dp[N];
int add(int x, int y) {
  if (x + y >= mod) {
    return x + y - mod;
  }
  return x + y;
}
int sub(int x, int y) {
  if (x - y < 0) {
    return x - y + mod;
  }
  return x - y;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> k;
  for (int i = 0; i < k; i++) {
    cin >> lft[i] >> rgt[i];
  }
  dp[1] = 1;
  for (int i = 1; i <= n; i++) {
    if (i > 2) {
      dp[i] = add(dp[i], dp[i - 1]);
    }
    for (int j = 0; j < k; j++) {
      int l = i + lft[j];
      int r = i + rgt[j] + 1;
      dp[l] = add(dp[l], dp[i]);
      dp[r] = sub(dp[r], dp[i]);
    }
  }
  cout << dp[n] << '\n';
  return 0;
}
