atcoder#AGC050C. [AGC050C] Block Game

[AGC050C] Block Game

Score : 10001000 points

Problem Statement

There is a sequence of cells that extends infinitely to both directions. You and Snuke play the following game:

  • The judge chooses a string tt consisting of B and S, called turn string, and show it to both players.
  • First, Snuke stands on one of the cells.
  • Then, for each i=1,...,ti = 1, ..., |t| in this order, the following happens:- If the ii-th letter of tt is B, it is your turn. You choose a cell that contains neither other blocks nor Snuke, and put a block on the cell. After that, if both of the two cells adjacent to Snuke's cell are blocked, you win and the game ends.
    • If the ii-th letter of tt is S, it is Snuke's turn. He may move to an adjacent unblocked cell, or doesn't do anything.
  • If the ii-th letter of tt is B, it is your turn. You choose a cell that contains neither other blocks nor Snuke, and put a block on the cell. After that, if both of the two cells adjacent to Snuke's cell are blocked, you win and the game ends.
  • If the ii-th letter of tt is S, it is Snuke's turn. He may move to an adjacent unblocked cell, or doesn't do anything.
  • If the game still hasn't ended, Snuke wins and the game ends.

You are given a string ss consisting of B, S, and ?. If ss contains QQ ?s, there are 2Q2^Q ways to replace each ? with B or S and get a turn string. Among those 2Q2^Q strings, how many will end up with your winning, in case both players play optimally? Find the answer modulo 998,244,353998,244,353.

Constraints

  • 1s1061 \leq |s| \leq 10^6
  • ss consists of B, S, and ?.

Input

Input is given from Standard Input in the following format:

ss

Output

Print the answer.

BSSBS
0

You take the 11st and the 44th turn, and Snuke takes the 22nd, the 33rd, and the 55th turn. In this case, if both players play optimally, it turns out that Snuke wins.

?S?B????S????????B??????B??S??
16777197