function spilitInput(input, to_int) {
  if (typeof to_int === 'undefined') to_int = false;
  var splited = [];
  var rows = input.split('\n');
  for (var i = 0; i < rows.length; i += 1) {
    if (to_int) {
      splited.push(rows[i].split(' ').map(function(d){return parseInt(d,10);}));
    } else {
      splited.push(rows[i].split(' '));
    }
  }
  return splited;
}

function initDp(N, init_n) { return Array(N+2).fill(init_n); }
function chmin(a, b) { if (a > b) a = b; }
function chmax(a, b) { if (a < b) a = b; }

function Main(input) {
  var splited = spilitInput(input, true);
  var N = splited[0][0];
  var kouho = [];
  for (var i = 1; i < splited.length; i += 1) {
    if (kouho.indexOf(splited[i][0]) === -1) kouho.push(splited[i][0]);
    if (kouho.indexOf(splited[i][1]) === -1) kouho.push(splited[i][1]);
  }
    
  var dp = initDp(N, 0); // dpの初期化（要素数, 各要素の初期値）
  dp[0] = 1;
  
  for (var i = 1; i < N; i += 1) {
    for (var j = 0; j < kouho.length; j += 1) {
      if (i >= kouho[j]) dp[i] += dp[i - kouho[j]];
    }
    
    dp[i] %= 998244353; // AtCoderでよくある'XXXで割ってください'の数指定
  }

  console.log(dp[N-1]);
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));