#include <cstdio>
#define mod 998244353
#define max_n 200000
#define max_k 10
using namespace std;
int /*dp[max_n+1],*/sum[max_n+1];
struct node{
	int l,r;
};
node a[max_k+1];
typedef const int& ci;
int cnt(int l,ci r){
	if(r<=0)
		return 0;
	l<=0&&(l=1);
	return sum[r]-sum[l-1]+mod;
}
int main(){
	int n,k;
	scanf("%d%d",&n,&k);
	for(int i=0; ++i<=k; scanf("%d%d",&a[i].l,&a[i].r));
	sum[1]=1,sum[0]=0;
	long long num;
	for(int i=1; ++i<=n; sum[i]=(sum[i-1]+num)%mod)
		for(int j=num=0; ++j<=k; num+=cnt(i-a[j].r,i-a[j].l));
	num=sum[n]-sum[n-1];
	printf("%lld\n",num<0?(num+mod):num);
	return 0;
}