    #include <bits/stdc++.h>
    using namespace std;
    const long long INF = 1LL <<60;
    const long long Mo=1000000007;
         
    long long gcn(long long x,long long y){
      if(x%y==0){
        return y;  
      }
      else{
        return gcn(y,x%y);
      }
    }
     
    long long modpow(long long a, long long n, long long mod) {
        long long res = 1;
        while (n > 0) {
            if (n & 1) res = res * a % mod;
            a = a * a % mod;
            n >>= 1;
        }
        return res;
    }
     
    int main(void){
      long long tmp1,tmp2;
      long long l[200001]={};
      long long n,k;
      long long x=0;
      long long i,j,m=0;
      long double res=0.0;
      
      cin>>n>>k;
      long long dp[n+1]={};
      for(i=0;i<k;i++){
        cin>>tmp1>>tmp2;
        for(j=tmp1;j<=tmp2;j++){
          l[m]=j;
          m++;
        }
      }
      sort(l,l+m);
      /*
      for(i=0;i<m;i++){
        cout<<l[i]<<endl;
      }*/

      dp[0]=0;
      dp[1]=1;
      for(i=2;i<=n;i++){
        for(j=0;j<m;j++){
          if(i-l[j]<=0){
            break;
          }
          else{
            dp[i]+=dp[i-l[j]];
            dp[i]=dp[i]%998244353;
          }
        }
      }
      
      
      cout<<dp[n]<<endl;

      //cout<<setprecision(15)<<res<<endl;
      //cout<<res<<endl;
      
      return 0;
    }