#include<bits/stdc++.h>
#include <iostream>

using namespace std;

int main()
{
    #ifdef LOCAL_EXEC
    #else
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    #endif // LOCAL_EXEC
    long long int n,i,j,k,x,y,z,mod=998244353;
    cin>>n>>k;
    long long int dp[n+1]={0};
    bool visited[n+1]={false};
    vector<long long int>vt;
    for(i=0;i<k;i++){
        cin>>x>>y;
        if(visited[x]==false)
            vt.push_back(x);
          visited[x]=true;
        if(visited[y]==false)
            vt.push_back(y);
        visited[y]=true;
    }
    sort(vt.begin(),vt.end());
    dp[1]=1;
    for(i=2;i<=n;i++){
        for(j=0;j<vt.size();j++){
         //   cout<<vt[j]<<" ";
            if(i-1>=vt[j])
                dp[i]+=dp[i-vt[j]];
              //  dp[i]+=mod;
               //dp[i]%=mod;
        }
        dp[i]+=mod;
       dp[i]%=mod;
    }
    cout<<(dp[n]+mod)%mod;
    return 0;
}
