#include <iostream>
#include<unordered_map>
#include<bits/stdc++.h>
using namespace std;
long long int power(long long int x, long long int y, long long int p)  
{  
    long long int res = 1;      
  
    x = x % p; 
   
    if (x == 0) return 0; 
  
    while (y > 0)  
    {  
        
        if (y & 1)  
            res = (res*x) % p;  
  
          
        y = y>>1;  
        x = (x*x) % p;  
    }  
    return res;  
}  
int main() {
    
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
	int t;
	t=1;
	while(t--)
	{
       int n;
       
       cin>>n;
       long long int k;
       cin>>k;
       
       int arr1[n+1]={0};
    //   int arr2[15]={0};
       for(int i=0;i<k;i++)
       {
           int x,y;
           cin>>x>>y;
           
         for(int i=x;i<=y;i++)
         {
             arr1[i]=1;
         }
       }
       
       long long int p=998244353;
       vector<long long int > v;
       long long int ans[n+1]={0};
       
        if(arr1[1]==1)  v.push_back(1);
        
       for(int i=2;i<=n;i++)
       {
           long long int an=0;
           for(int j=0;j<v.size();j++)
           {
               an+= ans[i-v[j]] % p;
               if(ans[i-v[j]]==0 && arr1[i-v[j]]==1 ) an+=1;
               
               an%=p;
               
           }
           
           ans[i]=an;
           
           if(arr1[i]==1)  v.push_back(i);
           
           
           
           
           
       }
    
    
      cout<<ans[n]<<endl;
    
    
	}
	   
	   
	return 0;
}