#include <bits/stdc++.h>
const int MAXN = 2e5 + 5;
using namespace std;
int n, k, num;
int s[MAXN];
long long ans[MAXN];
long long dfs(int x) {
  if (x < 1) return 0;
  if (x == 1) return 1;
  if (ans[x])
    return ans[x];
  else {
    for (int i = 0; i <= num; i++)
      ans[x] = (ans[x] + dfs(x - s[i])) % 998244353;
  }
  return ans[x];
}
int main() {
  num = -1;
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= k; i++) {
    int l, r;
    scanf("%d%d", &l, &r);
    for (int j = l; j <= r; j++) s[++num] = j;
  }
  dfs(n);
  printf("%lld\n", ans[n]);
  return 0;
}
