#include <bits/stdc++.h>
unsigned int dp[(2 * 1000)];
int main() {
  int N, K;
  std::cin >> N >> K;
  int L[10], R[10];
  for (int i = 0; i < K; i++) {
    std::cin >> L[i] >> R[i];
  }
  dp[0] = 1;
  for (int i = 1; i < N; i++) {
    dp[i] = dp[i - 1];
    for (int k = 0; k < K; k++) {
      if (i - L[k] >= 0 && i - R[k] - 1 >= 0) {
        dp[i] += ((998244353) + dp[i - L[k]] - dp[i - R[k] - 1]) % (998244353);
      } else if (i - L[k] >= 0) {
        dp[i] += dp[i - L[k]];
      }
      dp[i] %= (998244353);
    }
    std::cout << dp[i] << std::endl;
  }
  std::cout << ((998244353) + dp[N - 1] - dp[N - 2]) % (998244353) << std::endl;
  return 0;
}
