#include<iostream>
#include<vector>
#include<unordered_set>
#include<algorithm>
#include<stdlib.h>
#include<stdio.h>
#include<cstring>
using namespace std;
typedef long long int ll;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    ll n,k;
    cin>>n>>k;
    vector<pair<ll,ll> >v;
    for(ll i=0;i<k;i++)
    {
        ll a,b;
        cin>>a>>b;
        v.push_back(make_pair(a,b));
    }
    vector<ll>s;
     for(int i=0;i<k;i++)
     {
         for(int j=v[i].first;j<=v[i].second;j++)
            s.push_back(j);
     }
      vector<ll>::iterator it;
      vector<ll>a(n+1,0);
      a[0]=0 ;
      a[1]=1;
      for(ll i=2;i<=n;i++)
      {
          for(it=s.begin();it!=s.end();it++)
          {
              if(i-(*it)>0)
              {
                  a[i]+=a[i-(*it)];
              }
          }
          //cout<<a[i]<<" ";
      }
      cout<<a[n]%998244353<<"\n";
