#include<bits/stdc++.h>
#include <iostream>
using namespace std;
typedef long long int ll;

int main()
{
  int n,k; cin>>n>>k;
  int l[k],r[k];
  
  for(int i=0;i<k;i++)
  cin>>l[i]>>r[i];
  
  vector<int>jump;
  
  for(int i=0;i<k;i++)
  {
      for(int j=l[i];j<=r[i];j++)
      {
          jump.push_back(j);
      }
  }
  
  sort(jump.begin(),jump.end());
  
  long long int dp[n+1]={-1};
  dp[1]=1;
  
  for(int i=1;i<=n;i++)
  {
      for(auto j:jump)
      {
          if(i-j>=1 && dp[i-j]!=-1)
          {
            if(dp[i]==-1)
            dp[i]=0;
            
            dp[i]+=dp[i-j]%998244353;
          }
          else
          break;
      }
      
      dp[i]%=998244353;
  }
  
  /*
  for(auto i:jump)
  cout<<i<<" ";
  cout<<endl;
  
  for(auto i:dp)
  cout<<i<<" ";
  */
  cout<<dp[n];
  
  
  
    return 0;
}
