import sys input = sys.stdin.readline mod = 998244353 N = int(input()) S = input().rstrip() allone = [True] * (N+1) for i in range(N)[::-1]: allone[i] = allone[i+1] and (S[i] in '1?') ans = 0 if allone[0]: ans = 1 dp0 = [0] * (3*N+1) dp1 = [0] * (3*N+1) dp1[0] = 1 for i in range(N): ndp0 = [0] * (3*N+1) ndp1 = [0] * (3*N+1) if S[i] != '0': for j in range(-2*N, N+1): if j-2 >= -2*N: ndp1[j-2] = (ndp1[j-2] + dp0[j]) % mod ndp1[j] = (ndp1[j] + dp1[j]) % mod if S[i] != '1': for j in range(-2*N, N): ndp0[j+1] = (ndp0[j+1] + dp0[j] + dp1[j]) % mod dp0 = ndp0 dp1 = ndp1 if allone[i+1]: for i in range(-2*N, 1, 2): ans = (ans + dp0[i]) % mod print(ans)