#ifdef LOCAL #define _GLIBCXX_DEBUG 1 #endif #pragma GCC optimize("O3") // =============================================== CODE ================================================ // #include #define F first #define S second #define pb push_back #define pob pop_back #define all(x) begin(x), end(x) #define FOR(i,a,b) for (int i = (a); i <= (b); i++) #ifdef LOCAL #define HEHE freopen("in.txt", "r", stdin); #define debug(HEHE...) std::cerr << "\e[1;31m" << #HEHE << "\033[0m" << " = ", dout(HEHE) void dout() { std::cerr << "\n"; } template void dout(T t, U... u) { std::cerr << t << ' ', dout(u...); } #else #define HEHE ios_base::sync_with_stdio(0), cin.tie(0); #define debug(...) 7122 #endif using namespace std; template bool chmin(T1 &a, T2 b) { return a > b ? a = b, 1 : 0; } template bool chmax(T1 &a, T2 b) { return a < b ? a = b, 1 : 0; } #define ssize(x) (int)(x.size()) #define int long long const int mod = 998244353; void solve() { int n; cin >> n; map dp; int ans = 0; for (int i = 0; i < n; i++) { int x; cin >> x; ans = (ans + dp[x - 1]) % mod; dp[x] = (1 + dp[x - 1] + dp[x]) % mod; } cout << ans << '\n'; } signed main() { HEHE int t = 1; // cin >> t; while (t--) solve(); }