#include #include using namespace atcoder; #define rep(i, n) for (int i = 0; i < (n); ++i) using namespace std; using mint = modint998244353; int main() { int n; cin >> n; vector pos(n); rep(i, n) { int x; cin >> x; pos[x] = i; } mint ans = 1; int l = n, r = -1; rep(i, n) { if (l <= pos[i] and pos[i] <= r) { ans *= r-l+1 - i; } else { l = min(l, pos[i]); r = max(r, pos[i]); } } cout << ans.val() << '\n'; return 0; }