import sys input = sys.stdin.readline MOD = 998244353 def solve(): N = int(input()) A = input().strip() if '0' not in A or '1' not in A: print(1) return pz = A.index('0') # first '0' position lo = N - 1 - A[::-1].index('1') # last '1' position if pz > lo: print(1) return dp = [1, 1] for j in range(pz, lo): new_dp = [0, 0] new_dp[0] = (new_dp[0] + dp[0]) % MOD # 0→0 new_dp[1] = (new_dp[1] + dp[0]) % MOD # 0→1 new_dp[1] = (new_dp[1] + dp[1]) % MOD # 1→1 if A[j] == '1' and A[j+1] == '0': # 1→0 only if A has "10" here new_dp[0] = (new_dp[0] + dp[1]) % MOD dp = new_dp print((dp[0] + dp[1]) % MOD) solve()