HUST Online Judge WebBoard
Problem 1455 >> std
20220440216 @ 2024-07-26 21:29:58
[ Quote ] [ Edit ] [ Delete ] 1#
#include<bits/stdc++.h>
#define T int TT;cin>>TT;while (TT--)
#define ll long long
#define rep(i,n) for(ll i=0;i<n;i++)
#define ref(i,n) for(ll i=n-1;i>=0;i--)
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
const ll LNF = 9223372036854775807;
using namespace std;
ll n, m, k, ans, cnt = 1;
typedef pair<ll, ll>tt;
const ll M = 1e5+10;
ll dp[M];
ll mod=998244353;
int main()
{
IOS;
cin>>n>>m;
map<ll,ll>ok;
for(ll i=0;i<m;i++)
{
ll z;
cin>>z;
ok[z]=1;
}
dp[0]=1;
ll las=0;
for(ll i=1;i<=n;i++)
{
dp[i]+=dp[i-1];
if(i>1)dp[i]+=dp[i-2];
if(ok[i])
{
dp[i]+=las;
las+=dp[i];
las%=mod;
}
dp[i]%=mod;
}
cout<<dp[n]<<endl;
}