P25647 [AtCoder] Logical Expression
普及-
题目描述

Problem Statement

Given are $N strings S_1,\ldots,S_N$, each of which is AND or OR.
Find the number of tuples of $N+1 variables (x_0,\ldots,x_N)$, where each element is $\text{True}$ or $\text{False}$, such that the following computation results in $y_N being \text{True}$:

  • y_0=x_0;
  • for $i\geq 1, y_i=y_{i-1} \land x_i$ if S_i is AND, and $y_i=y_{i-1} \lor x_i$ if S_i is OR.

Here, $a \land b$ and $a \lor b$ are logical operators.

Input

Input is given from Standard Input in the following format:
N
S_1
$\vdots$
S_N

Output

Print the answer.

Constraints

  • $1 \leq N \leq 60$
  • S_i is AND or OR.

Sample Input 1

2
AND
OR

Sample Output 1

5

For example, if $(x_0,x_1,x_2)=(\text{True},\text{False},\text{True})$, we have $y_2 = \text{True}$, as follows:

  • $y_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}$

All of the five tuples (x_0,x_1,x_2) resulting in $y_2 = \text{True}$ are shown below:

  • $(\text{True},\text{True},\text{True})$
  • $(\text{True},\text{True},\text{False})$
  • $(\text{True},\text{False},\text{True})$
  • $(\text{False},\text{True},\text{True})$
  • $(\text{False},\text{False},\text{True})$

Sample Input 2

5
OR
OR
OR
OR
OR

Sample Output 2

63

All tuples except the one filled entirely with $\text{False}$ result in $y_5 = \text{True}$.

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
2 AND OR
样例输出
5