#include <bits/stdc++.h>
using namespace std;
const long double pi = acos(-1);
vector<int> v;
long long n, m;
int MOD = 998244353;
long long dp[200002];
long long sol(long long cu) {
  if (cu == 0) return 1;
  long long &ans = dp[cu];
  if (ans != -1) return ans;
  ans = 0;
  for (int i = 0; i < v.size(); i++) {
    if (v[i] > cu)
      break;
    else
      ans = (ans % MOD + sol(cu - v[i]) % MOD) % MOD;
  }
  return ans % MOD;
}
int main() {
  cin.tie(0);
  cin.sync_with_stdio(0);
  int t = 1;
  while (t--) {
    cin >> n >> m;
    pair<int, int> a[m];
    for (int i = 0; i < m; i++) {
      cin >> a[i].first >> a[i].second;
      if (a[i].first > a[i].second) swap(a[i].first, a[i].second);
    }
    for (int i = 0; i < m; i++) {
      for (int j = a[i].first; j <= a[i].second; j++) v.push_back(j);
    }
    sort(v.begin(), v.end());
    long long d = n - 1;
    for (int i = 0; i < 200002; i++) dp[i] = -1;
    cout << sol(d);
  }
  return 0;
}
