#include <bits/stdc++.h>
const int DIV = 998244353;
int main(void) {
  int n;
  int k;
  int temp;
  int lr[10][2] = {0};
  int dp[200001] = {0};
  int i, j, l;
  scanf("%d%d", &n, &k);
  for (i = 0; i < k; i++) {
    scanf("%d%d", &lr[i][0], &lr[i][1]);
  }
  for (i = 0; i < k; i++) {
    for (j = k - 1; j > i; j--) {
      if (lr[j - 1][0] > lr[j][0]) {
        temp = lr[j][0];
        lr[j][0] = lr[j - 1][0];
        lr[j - 1][0] = temp;
        temp = lr[j][1];
        lr[j][1] = lr[j - 1][1];
        lr[j - 1][1] = temp;
      }
    }
  }
  dp[1] = 1;
  for (i = 1; i <= n; i++) {
    l = 0;
    j = lr[l][0];
    while (i + j <= n) {
      dp[i + j] = (dp[i + j] + dp[i]) % DIV;
      j++;
      if (j > lr[l][1]) {
        l++;
        if (l == k) {
          break;
        }
        j = lr[l][0];
      }
    }
  }
  printf("%d\n", dp[n]);
  return (0);
}
