MOD = 998244353 N = int(input()) S = input() def func(n): dp = [[0]*2 for _ in range(N+2)] dp[0][0] = 1 for i in range(N): dp[i+1][0] += dp[i][0] dp[i+1][0] %= MOD dp[i+1][1] += dp[i][1] dp[i+1][1] %= MOD if S[i] == "0": dp[min(i+1+n, N+1)][0] += dp[i][0] dp[min(i+1+n, N+1)][0] %= MOD if S[i] == "1": dp[min(i+1+n, N+1)][1] += dp[i][0] dp[min(i+1+n, N+1)][1] %= MOD add = dp[i][0] if 0 <= i-n: add -= dp[i-n][0] add %= MOD dp[i+1][0] += add dp[i+1][0] %= MOD ans = 0 for i in range(1, N+1): if 2 <= N-i: ans += (dp[i][1]-dp[i-1][1])*POW[N-i-1]%MOD ans %= MOD else: ans += dp[i][1]-dp[i-1][1] ans %= MOD return ans POW = [1] for _ in range(N): POW.append(POW[-1]*2%MOD) ans = 0 for i in range(N): ans += func(i)*POW[i]%MOD ans %= MOD print(ans)