#include<atcoder/modint>#include<bits/stdc++.h>usingnamespacestd;usingnamespaceatcoder;usingmint=modint998244353;voidsolve(intn,vector<int>&L,vector<int>&R){intk=L.size();vector<mint>difference_array_of_dp(n+2,0);// Difference array should always be modified in pairs. Just because
// dp[1] = 1, doesn't mean you can set diff_array[1] = 1
difference_array_of_dp[1]=1;difference_array_of_dp[1+1]-=1;mintrunning_sum=0;for(inti=1;i<=n;i++){running_sum+=difference_array_of_dp[i];mintcurrent_dp=running_sum;for(intj=0;j<k;j++){if(i+L[j]>n){continue;}intleft=i+L[j];intright=min(i+R[j],n);difference_array_of_dp[left]+=current_dp;difference_array_of_dp[right+1]-=current_dp;}}cout<<running_sum.val()<<endl;}intmain(){intn,k;cin>>n>>k;vector<int>L(k),R(k);for(inti=0;i<k;i++){cin>>L[i]>>R[i];}solve(n,L,R);return0;}