# グリッド、dpだが、巨大すぎてdp表は作れない # iラウンドで下に降りれるのはmin(Ai, Ai+1) N = int(input()) A = list(map(int, input().split())) mod = 998244353 ans = 1 for i in range(N): if i == N-1: ans *= 1 ans %= mod else: ans *= min(A[i], A[i+1]) ans %= mod print(ans)