# BFS distanceではうまくいかない、隣り合うマスで交互に移動があるから # A = [3, 5, 2]を考えると1行目はすべて1、2行目はすべて3、3行目はすべて6となる(min(2行目の列数、3行目の列数)の上列の和) N = int(input()) A = list(map(int, input().split())) mod = 998244353 for i in range(N): a = A[i] if i == 0: num = 1 else: mn = min(A[i-1], A[i]) num = num*mn num %= mod #print('i', i, 'num', num) ans = num print(ans)