# -*- coding: utf-8 -*-
# モジュールのインポート
import numpy as np

# 標準入力を取得
N, K = list(map(int, input().split()))
S = []
for k in range(K):
    L_k, R_k = list(map(int, input().split()))
    S.append((L_k, R_k))

# 求解処理
S = sorted(S, key=lambda s: s[0])
m = np.array([0 if i != 0 else 1 for i in range(N)], dtype=np.uint64)
for i in range(N):
    m_i = int(m[i])
    if m_i == 0:
        continue
    for L_k, R_k in S:
        if i + L_k >= N:
            break
        m[i + L_k: i + R_k + 1] += m_i

ans = int(m[N - 1]) % 998244353

# 結果出力
print(ans)
