#abc189d. [abc189_d]Logical Expression

[abc189_d]Logical Expression

問題文

NN 個の文字列 S1,ldots,SNS_1,\\ldots,S_N が与えられます。各文字列は AND または OR です。

値が textTrue\\text{True} または textFalse\\text{False} であるような N+1N+1 個の変数の組 (x0,ldots,xN)(x_0,\\ldots,x_N) であって、 以下のような計算を行った際に、yNy_NtextTrue\\text{True} となるようなものの個数を求めてください。

  • y0=x0y_0=x_0
  • igeq1i\\geq 1 のとき、SiS_iAND なら yi=yi1landxiy_i=y_{i-1} \\land x_iSiS_iOR なら yi=yi1lorxiy_i=y_{i-1} \\lor x_i

alandba \\land baabb の論理積を表し、alorba \\lor baabb の論理和を表します。

制約

  • 1leqNleq601 \\leq N \\leq 60
  • SiS_iAND または OR

入力

入力は以下の形式で標準入力から与えられる。

NN S1S_1 vdots\\vdots SNS_N

出力

答えを出力せよ。


入力例 1

2
AND
OR

出力例 1

5

例えば $(x_0,x_1,x_2)=(\\text{True},\\text{False},\\text{True})$ のとき

  • y0=x0=textTruey_0=x_0=\\text{True}
  • $y_1=y_0 \\land x_1 = \\text{True} \\land \\text{False}=\\text{False}$
  • $y_2=y_1 \\lor x_2 = \\text{False} \\lor \\text{True}=\\text{True}$

となり、y2y_2textTrue\\text{True} になります。

y2y_2textTrue\\text{True} となるような (x0,x1,x2)(x_0,x_1,x_2) の組み合わせは、

  • (textTrue,textTrue,textTrue)(\\text{True},\\text{True},\\text{True})
  • (textTrue,textTrue,textFalse)(\\text{True},\\text{True},\\text{False})
  • (textTrue,textFalse,textTrue)(\\text{True},\\text{False},\\text{True})
  • (textFalse,textTrue,textTrue)(\\text{False},\\text{True},\\text{True})
  • (textFalse,textFalse,textTrue)(\\text{False},\\text{False},\\text{True})

55 通りで全てです。


入力例 2

5
OR
OR
OR
OR
OR

出力例 2

63

全てが textFalse\\text{False} のときを除く 2612^6-1 通りで y5y_5textTrue\\text{True} になります。