#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 5;
const int INF = 0x3f3f3f3f;
const int mod = 998244353;
long long bit[maxn];
void add(int pos, long long val) {
  for (int i = pos; i < maxn; i += i & -i) bit[i] = (bit[i] + val) % mod;
}
long long ask(int pos) {
  long long ret = 0;
  for (int i = pos; i > 0; i -= i & -i) ret += bit[i];
  return ret % mod;
}
int l[maxn], r[maxn];
int main(void) {
  add(1, 1);
  int n, k;
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= k; i++) scanf("%d%d", l + i, r + i);
  for (int i = 2; i <= n; i++) {
    long long tmp = 0;
    for (int j = 1; j <= k; j++) {
      if (i - l[j] < 1) continue;
      int x = i - l[j];
      int y = max(1, i - r[j]);
      tmp += ask(x) - ask(y - 1);
    }
    tmp = tmp % mod + mod;
    add(i, tmp % mod);
  }
  printf("%lld\n", ask(n) - ask(n - 1));
}
