#include int main(){ std::cin.tie(nullptr); std::ios::sync_with_stdio(false); std::string S; std::cin >> S; int n = S.size(); std::vector dp(n + 1, std::vector(6, 0)); dp[0][1 + 0 * 2] = 1; constexpr int MOD = 998244353; auto trans = [](int ai, int ni, int s){ int s1 = s % 2, s2 = s / 2; int ns1; if(s1 == 1){ ns1 = ai <= ni; }else{ ns1 = ai < ni; } int ns2; if(s2 == 0 && ai == 4){ ns2 = 1; }else if(s2 == 1 && ai == 0){ ns2 = 2; }else if(s2 == 2 && ai == 4){ ns2 = 3; }else if(ai == 4){ ns2 = 1; }else{ ns2 = 0; } return ns1 + ns2 * 2; }; for(int i=0;i= MOD){dp[i + 1][ns] -= MOD;} } } } } int res = -1; for(int s2=0;s2<3;s2++){ res += dp[n][1 + s2 * 2]; if(res >= MOD){res -= MOD;} } std::cout << res << std::endl; }