#include<bits/stdc++.h>
#define pb push_back
#define pii pair<int,int>
#define int long long int
#define vec vector<int>
#define mp map<int,int>
#define inf 1e18
using namespace std;
vector<int> v;
int mod=998244353;
int dp[200001];
int ans(int n,int x)
{
  if(n==1)
        return 1;
  if(n<1)
    return 0;
  if(dp[n]!=-1)
    return dp[n];
  int res=0;
  for(int i=0;i<x;i++)
  {
    if(n>v[i])
        res=((res%mod)+(ans(n-v[i],x)%mod))%mod;
  }
  return dp[n]=res%mod;
}
int32_t main()
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int tt=1;
  //cin>>tt;
  while(tt--)
  {
    memset(dp,-1,sizeof(dp));
    int n,k;
    cin>>n>>k;
    int l[n],r[n],i;
    for(i=0;i<k;i++)
        cin>>l[i]>>r[i];
    int a[n+1]={0};
    for(i=0;i<k;i++)
    {
      for(int j=l[i];j<=r[i];j++)
      if(!a[j])
      {
        a[j]++;
        v.pb(j);
      }
    }
    int x=v.size();
    sort(v.begin(),v.end());
    cout<<ans(n,x)<<"\n";
  }
}
