n=int(input()) A=list(map(int,input().split())) A+=[0] p=998244353 def kaimod(n,p): l=[1] a=1 for i in range(1,n+1): a=(a*i)%p l+=[a] b=pow(a,p-2,p) ll=[1]*(n+1) ll[n]=b for i in range(n-1,1,-1): b=(b*(i+1))%p ll[i]=b return([l,ll]) q=kaimod(A[0]+n,p) kai=q[0] kair=q[1] def binom(n,m): return((((kai[n+m]*kair[m])%p)*kair[n])%p) ans=1 x=A[0]+1 for i in range(1,n+1): if A[i-1]>A[i]: x-=1 ans=(ans+binom(x-1,i-1))%p while x>=A[i]+2: x-=1 ans=(ans+binom(x-1,i-1))%p if i!=n: ans=(ans+binom(x-2,i))%p print(ans)