#include using namespace std; const long long MOD = 998244353; int main(){ int N; cin >> N; vector B(N); for (int i = 0; i < N; i++){ cin >> B[i]; } vector c(N); for (int i = 0; i < N; i++){ if (((N - 1) & i) == i){ c[i] = 1; } else { c[i] = 0; } } vector> dp(N + 1, vector(2, 0)); dp[0][0] = 1; for (int i = 0; i < N; i++){ for (int j = 0; j < 2; j++){ if (B[i] != 1){ dp[i + 1][j] += dp[i][j]; dp[i + 1][j] %= MOD; } if (B[i] != 0){ dp[i + 1][j ^ c[i]] += dp[i][j]; dp[i + 1][j ^ c[i]] %= MOD; } } } cout << dp[N][1] << endl; }