#include<bits/stdc++.h>
using namespace std;
int main(){
  int n,k;
  cin>>n>>k;
  vector<int> l(k),r(k);
  for(int i=0;i<k;i++){
    cin>>l[i]>>r[i];
  }
  sort(l.begin(),l.end());
  sort(r.begin(),r.end());
  vector<int64_t> a(n+1,0);
  a[1]=1;
  a[2]=-1;
  int64_t dpsum=0;
  for(int i=1;i<n;i++){
    dpsum+=a[i];
    dpsum%=998244353;
    for(int j=0;j<k;j++){
      if(i+l[j]<=n){
        a[i+l[j]]+=dpsum;
        a[i+l[j]]%=998244353;
      }
      if(i+r[j]+1<=n){
        a[i+r[j]+1]-=dpsum;
        a[i+r[j]+1]%=998244353;
      }
    }
  }
  uint64_t sum=accumulate(a.begin(),a.end(),0LL)%998244353;
  cout<<sum<<endl;
}
  