#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;
}
