#include <bits/stdc++.h>   using namespace std;   int vet[1010], dp[2][1010];   const int mod = 998244353;   long long soma(long long x, long long y) {     x += y;     if (x >= mod) x -= mod;     return x;   }   int main() {     int n;     cin >> n;     for (int i = 0; i < n; i++) {       cin >> vet[i];     }     for (int i = 0; i < n; i++) {       for (int j = 0; j < n; j++) {         dp[1][j] = dp[0][j];       }       if (vet[i] < n and vet[i] > 0) {         dp[1][vet[i]] = soma(soma(dp[0][0], 1), dp[1][vet[i]]);       }       for (int k = 0; k < n; k++) {         dp[1][k] = soma(dp[1][k], dp[0][k + 1]);       }       swap(dp[0], dp[1]);     }     cout << dp[0][0] << endl;   }   