#include using namespace std; using ll = long long; const int MOD = 998244353; int main() { int N; string A; cin >> N >> A; ll dp0 = 1, dp1 = 0; // dp0: 伝播なし, dp1: 1伝播中 for (char c : A) { ll ndp0 = 0, ndp1 = 0; if (c == '1') { ndp0 = (ndp0 + dp0) % MOD; // 広げない ndp1 = (ndp1 + dp0) % MOD; // 広げる ndp1 = (ndp1 + dp1) % MOD; // 伝播継続 } else { // '0' ndp1 = (ndp1 + dp1) % MOD; // 左から1が来ている場合は強制1 ndp0 = (ndp0 + dp0 * 2 % MOD) % MOD; // 0の場合の2選択(広げない/広げる) } dp0 = ndp0; dp1 = ndp1; } ll answer = (dp0 + dp1) % MOD; cout << answer << endl; return 0; }