import math
from functools import reduce
from collections import deque
import sys
sys.setrecursionlimit(10**7)

def input():
    return sys.stdin.readline().strip()

# スペース区切りの入力を読み込んで数値リストにして返します。
def get_nums_l():
    return [ int(s) for s in input().split(" ")]

# 改行またはスペース区切りの入力をすべて読み込んでイテレータを返します。
def get_all_int():
    return map(int, open(0).read().split())

def log(*args):
    print("DEBUG:", *args, file=sys.stderr)

def main():
    INF = 999999999999999999999999
    MOD = 998244353

    n,k = get_nums_l()

    steps = []
    for _ in range(k):
        l,r = get_nums_l()
        for i in range(l, r+1):
            steps.append(i)

    # dp[i] = iマスまで行く方法のパターン数
    dp = [0] * (n+1)

    dp[1] = 1

    for i in range(1, n):
        for step in steps:
            if i+step <= n:
                dp[i+step] = (dp[i+step] + dp[i]) % MOD

    print(dp[n] % MOD)

main()