#include <iostream>
#include <vector>
using namespace std;
using ll = long long;

const ll mod = 998244353;

int main() {
    int N;
    cin >> N;
    vector<ll> A(N);
    for (ll i = 0; i < N; i++) {
        cin >> A[i];
    }
    vector<vector<ll>> dp(N, vector<ll>(100002, 0));
    for (ll i = A[0]; i <= 100000; i++) {
        dp[0][i] = 1;
    }
    for (ll i = 0; i < N - 1; i++) {
        for (ll j = 0; j <= 100000; j++) {
            if (A[i + 1] - A[i] >= 0) {
                if (j + A[i + 1] - A[i] <= 100000) {
                    dp[i + 1][j + A[i + 1] - A[i]] += dp[i][j];
                    dp[i + 1][j + A[i + 1] - A[i]] %= mod;
                }
            } else {
                dp[i + 1][j] = (dp[i + 1][j] + dp[i][j]) % mod;
            }
        }
        for (ll j = 0; j <= 100000; j++) {
            dp[i + 1][j + 1] = (dp[i + 1][j + 1] + dp[i + 1][j]) % mod;
        }
    }
    ll ans = 0;
    for (ll i = 0; i <= 100000; i++) {
        ans = (ans + dp[N - 1][i]) % mod;
    }
    cout << ans << endl;
}