S = input() MOD = 998244353 dp = [[0]*3 for _ in range(len(S)+1)] p = 1 for i in range(len(S)): if S[i] == '0': dp[i+1][0] = ( dp[i][0] + p ) % MOD dp[i+1][1] = dp[i][1] dp[i+1][2] = ( dp[i][2] + dp[i][1] ) % MOD elif S[i] == '1': dp[i+1][0] = dp[i][0] dp[i+1][1] = ( dp[i][1] + dp[i][0] ) % MOD dp[i+1][2] = dp[i][2] elif S[i] == '?': dp[i+1][0] = ( 2 * dp[i][0] + p ) % MOD dp[i+1][1] = ( 2 * dp[i][1] + dp[i][0] ) % MOD dp[i+1][2] = ( 2 * dp[i][2] + dp[i][1] ) % MOD p *= 2 print( dp[len(S)][2] )