#include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N; cin >> N; string A; cin >> A; const long long MOD = 998244353; vector L(N); bool found0 = false; for (int i = 0; i < N; ++i) { if (A[i] == '0') found0 = true; L[i] = found0; } vector R(N); bool found1 = false; for (int i = N - 1; i >= 0; --i) { if (A[i] == '1') found1 = true; R[i] = found1; } vector> dp(N, vector(2, 0)); if (L[0]) dp[0][0] = 1; if (R[0]) dp[0][1] = 1; for (int i = 1; i < N; ++i) { if (L[i]) { dp[i][0] = (dp[i][0] + dp[i-1][0]) % MOD; if (A[i-1] == '1' && A[i] == '0') { dp[i][0] = (dp[i][0] + dp[i-1][1]) % MOD; } } if (R[i]) { dp[i][1] = (dp[i][1] + dp[i-1][0]) % MOD; dp[i][1] = (dp[i][1] + dp[i-1][1]) % MOD; } } cout << (dp[N-1][0] + dp[N-1][1]) % MOD << endl; return 0; }