## https://yukicoder.me/problems/no/2550 MOD = 998244353 def main(): N = int(input()) A = list(map(int, input().split())) pattern_sum = [0] * (N + 1) steps_sum = [0] * (N + 1) score_sum = [0] * (N + 1) cum_pattern_sum = [0] * (N + 1) cum_steps_sum = [0] * (N + 1) cum_score_sum = [0] * (N + 1) pattern_sum[0] = 1 cum_pattern_sum[0] = 1 for i in range(N): pattern_sum[i + 1] += cum_pattern_sum[i] pattern_sum[i + 1] %= MOD steps_sum[i + 1] += cum_steps_sum[i] steps_sum[i + 1] %= MOD steps_sum[i + 1] += cum_pattern_sum[i] steps_sum[i + 1] %= MOD score_sum[i + 1] += (steps_sum[i + 1] * A[i]) % MOD score_sum[i + 1] %= MOD score_sum[i + 1] += cum_score_sum[i] score_sum[i + 1] %= MOD cum_pattern_sum[i + 1] += (pattern_sum[i + 1] + cum_pattern_sum[i]) % MOD cum_pattern_sum[i + 1] %= MOD cum_steps_sum[i + 1] += (steps_sum[i + 1] + cum_steps_sum[i]) % MOD cum_steps_sum[i + 1] %= MOD cum_score_sum[i + 1] += (score_sum[i + 1] + cum_score_sum[i]) % MOD cum_score_sum[i + 1] %= MOD print(score_sum[-1]) if __name__ == "__main__": main()