#include <bits/stdc++.h>
using namespace std;
map<long long, long long> m;
long long dp[300000];
long long go(long long i, long long n) {
  if (dp[i] != -1) return dp[i] % 998244353;
  ;
  if (i > n) return 0;
  if (i == n) return 1;
  long long c = 0;
  for (auto it = m.begin(); it != m.end(); it++) {
    c += go(i + it->first, n);
    if (i + it->first > n) break;
    c = c % 998244353;
  }
  dp[i] = c % 998244353;
  ;
  return c % 998244353;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n;
  long long k;
  cin >> n >> k;
  for (long long i = 0; i < 300000; i++) dp[i] = -1;
  for (long long i = 0; i < k; i++) {
    long long l, r;
    cin >> l >> r;
    for (long long i = l; i < r + 1; i++) m[i] = 1;
  }
  cout << go(1, n);
}
