#include <bits/stdc++.h>
using namespace std;
const int inf = 1000000007;
const long long mod = 998244353;
const double PI = 3.14159265358979323846;
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};
long long l[1000010];
long long r[1000010];
int main() {
  int N, K;
  vector<pair<int, int> > v(10);
  cin >> N >> K;
  v.resize(K);
  for (int i = 0; i < (K); i++) {
    int l, r;
    cin >> l >> r;
    v[i] = make_pair(l, r);
  }
  long long cuml = 0;
  long long cumr = 0;
  for (auto itr : v) {
    l[1 + itr.first] += 1;
    r[1 + itr.second + 1] += 1;
  }
  for (int i = 1; i <= N; i++) {
    cuml += l[i];
    cumr += r[i];
    long long tmp = cuml - cumr;
    for (auto itr : v) {
      l[i + itr.first] += tmp;
      r[i + itr.second + 1] += tmp;
    }
    cuml %= mod;
    cumr %= mod;
  }
  long long ans = cuml - cumr;
  if (ans < 0)
    cout << ans + mod << endl;
  else
    cout << ans << endl;
  return 0;
}
