#include <bits/stdc++.h>
int main(void) {
  int N, K;
  scanf("%d%d", &N, &K);
  int box[K][2];
  for (int i = 0; i < K; i++) {
    scanf("%d%d", &box[i][0], &box[i][1]);
  }
  int dp[N + 1];
  int unko = 998244353;
  memset(dp, 0, sizeof(dp));
  dp[1] = 1;
  for (int i = 1; i < N + 1; i++) {
    if (dp[i] != 0) {
      for (int j = 0; j < K; j++) {
        for (int k = box[j][0]; k < box[j][1] + 1; k++) {
          if (i + k > N) {
            break;
          }
          dp[i + k] += dp[i];
          dp[i + k] %= unko;
        }
      }
    }
  }
  printf("%d\n", dp[N] % unko);
  return 0;
}
