#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
const long long mod = 998244353;
long long cnt[N];
int n, lb[12], rb[12];
void Update(int idx, long long val) {
  while (idx <= n) {
    cnt[idx] = (cnt[idx] + val) % mod;
    idx += idx & (-idx);
  }
}
long long Query(int idx) {
  long long ans = 0;
  while (idx > 0) {
    ans = (ans + cnt[idx]) % mod;
    idx -= idx & (-idx);
  }
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cnt[1] = 1;
  long long i, j, k, l, r, ans;
  cin >> n >> k;
  for (i = 1; i <= k; i++) cin >> lb[i] >> rb[i];
  for (i = 2; i <= n; i++) {
    ans = 0;
    for (j = 1; j <= k; j++) {
      r = i - lb[j];
      if (r < 1) continue;
      l = max(1LL, i - rb[j]);
      ans += Query(r) - Query(l - 1);
    }
    Update(i, ans);
  }
  cout << Query(n);
  return 0;
}
