# ####################################################################
# import io
# import sys
# _INPUT = """\
# 7 1
# 1 3
# """
# sys.stdin = io.StringIO(_INPUT)
####################################################################
import sys
def _p(*_a):
  #return
  _s=" ".join(map(str,_a))
  #print(_s)
  sys.stderr.write(_s+"\n")
####################################################################
def _pa(_aa):
  #return
  for _a in _aa: _p(_a)
####################################################################
N, K = map(int, input().split())

MOD = 998244353
ans = 0

A = []
for k in range(K):
  l,r = map(int, input().split())
  for i in range(l, r+1):
    A.append(i)

A.sort()

_p(N,K,A)

M = [0] * (N + 1)
M[1] = 1
for m in range(1,N+1):
  for a in A:
    p = m + a
    _p(m,a,p,M)
    if p > N: break
    M[p] += M[m]
    M[p] = M[p] % MOD

_p(M)
print(M[N] % MOD)
# exit(0)

M = [0] * (N + 1)
for n in range(2, N+1):
  # print(n)
  if M[n] > 0: continue

  for a in A:
    p = n - a
    if p == 1: M[n] += 1
    if p <= 1: break
    M[n] += M[p] % MOD
    M[n] = M[n] % MOD

_p(M)
print(M[N] % MOD)


