using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static int[][] NArr(long n) => Enumerable.Repeat(0, (int)n).Select(_ => NList).ToArray(); static string[] SList(long n) => Enumerable.Repeat(0, (int)n).Select(_ => ReadLine()).ToArray(); public static void Main() { Solve(); } static void Solve() { var n = NN; var a = NList; var ans = 0L; var n2 = new long[n + 1]; n2[0] = 1; for (var i = 1; i < n2.Length; ++i) n2[i] = n2[i - 1] * 2 % mod; for (var i = 0; i < n; ++i) { ans = (ans + a[i] * Calc(i, n2) % mod * Calc(n - i - 1, n2) % mod) % mod; } WriteLine(ans); } static int mod = 998_244_353; static long Calc(int i, long[] n2) { if (i < 1) return 1; return n2[i - 1] * (i + 2) % mod; } }