#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int mod = 998244353;
const int maxn = 2e5 + 10;
int a[maxn];
struct Node {
  int l, r;
} node[maxn];
set<int> s;
int n, k;
int ans;
void dfs(int sum) {
  if (sum > n) {
    return;
  }
  if (sum == n) {
    ans++;
    ans %= mod;
    return;
  }
  for (set<int>::iterator it = s.begin(); it != s.end(); it++) {
    dfs(sum + *it);
  }
  return;
}
int main(void) {
  cin >> n >> k;
  for (int i = 1; i <= k; i++) {
    cin >> node[i].l >> node[i].r;
    s.insert(node[i].l);
    s.insert(node[i].r);
  }
  dfs(1);
  cout << ans << endl;
  return 0;
}
