//#pragma GCC target("avx") #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #include using namespace std; int e1[270001]; int e2[270001]; int dp[14001]; int main() { ios::sync_with_stdio(false); std::cin.tie(nullptr); int n; cin >> n; constexpr int mask = 2147483647; for (int i=0; i<=n; ++i) { char x; cin >> x; if (x == 'o') { e1[((i%5)<<15)|(i/5)] = mask; e2[((i%8)<<15)|(i/8)]= mask; } } if (n % 10 != 0) { cout << 0 << '\n'; return 0; } dp[0] = 1; for (int i=1; i<=n/10; ++i){ int w = i*10; if (!e1[((w%5)<<15)|(w/5)]) continue; long long t = 0; int a = ((w%5)<<15)|((w-5*i)/5); int b = ((w%8)<<15)|((w-8*i)/8); for (int k=0; k(t % 998244353); } cout << dp[n/10] << '\n'; }