#include <bits/stdc++.h>
using namespace std;

int main(){
  const int64_t mod=998244353;
  int N,K;
  cin >> N >> K;
  vector<pair<int,int> > vp(K);
  for(int i=0;i<K;i++){
    cin >> vp.at(i).first >> vp.at(i).second;
  }
  vector<int64_t> dp(N+1,0),sum(N+1,0);
  dp.at(1)=1;
  sum.at(1)=sum.at(0)+dp.at(1);
  for(int i=2;i<=N;i++){
    for(int j=0;j<K;j++){
      if(i>vp.at(j).first){
        dp.at(i)+=(sum.at(i-vp.at(j).first)-sum.at(max(0,i-vp.at(j).second-1)))%mod;
        dp.at(i)%=mod;
      }
    }
    sum.at(i)+=(sum.at(i-1)+dp.at(i))%mod;
    sum.at(i)%=mod;
  }
  if(dp.at(N)<0){
    dp.at(N)+=mod;
  }
  cout << dp.at(N) << endl;
  return 0;
}
