#include<bits/stdc++.h>
#include<iostream>

using namespace std;
int main(){
#ifdef LOCAL_EXEC
#else
ios_base::sync_with_stdio(false);
cin.tie(NULL);
#endif // LOCAL_EXEC
long long int n,k,i,j,x,y,z,mod=998244353;
cin>>n>>k;
vector<pair<long long int,long long int> >vt;
long long int dp[n+1]={0};
for(i=1;i<=k;i++){
    cin>>x>>y;
    vt.push_back({x,y});
}
sort(vt.begin(),vt.end());
dp[1]=1;
for(i=2;i<=n;i++){
    dp[i]=dp[i-1];
    for(j=0;j<vt.size();j++){
        if(i-vt[j].first>=1)
            dp[i]+=dp[i-vt[j].first]-dp[max(0ll,i-vt[j].second-1)];
            dp[i]=(dp[i]+mod)%mod;
    }
   // cout<<dp[i]<<" ";

}
cout<<dp[n]-dp[n-1];
}
