#ABC189D. 逻辑表达式

逻辑表达式

问题描述

给定NN个字符串S1,,SNS_1,\ldots,S_N,每个字符串是ANDOR。 求满足以下条件的N+1N+1元组(x0,,xN)(x_0,\ldots,x_N)的数量,其中每个元素为True\text{True}False\text{False},使得以下计算过程最终yNy_NTrue\text{True}

  • y0=x0y_0=x_0
  • 对于i1i\geq 1,如果SiS_iAND,则yi=yi1xiy_i=y_{i-1} \land x_i;如果SiS_iOR,则yi=yi1xiy_i=y_{i-1} \lor x_i。 这里,aba \land baba \lor b是逻辑运算符。

约束条件

  • 1N601 \leq N \leq 60
  • SiS_iANDOR

输入

输入通过标准输入给出,格式如下:

N
S_1
...
S_N

输出

打印答案。

样例输入1

2
AND
OR

样例输出1

5

例如,如果$(x_0,x_1,x_2)=(\text{True},\text{False},\text{True})$,则y2=Truey_2 = \text{True},计算过程如下:

  • y0=x0=Truey_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}$ 所有使得y2=Truey_2 = \text{True}的五个元组(x0,x1,x2)(x_0,x_1,x_2)如下:
  • (True,True,True)(\text{True},\text{True},\text{True})
  • (True,True,False)(\text{True},\text{True},\text{False})
  • (True,False,True)(\text{True},\text{False},\text{True})
  • (False,True,True)(\text{False},\text{True},\text{True})
  • (False,False,True)(\text{False},\text{False},\text{True})

样例输入2

5
OR
OR
OR
OR
OR

样例输出2

63

除了全为False\text{False}的元组外,所有元组都使得y5=Truey_5 = \text{True}