Asynchronous Processor
time limit per test
2 seconds
memory limit per test
1024 megabytes
input
standard input
output
standard output

You are given a program consisting of $$$n$$$ instructions executed by a processor with a single integer register $$$A$$$, initially equal to $$$0$$$. Each instruction is one of two types:

The instructions in the program are numbered from $$$1$$$ to $$$n$$$. Each instruction $$$i$$$ initially has timestamp $$$i$$$.

Some instructions are marked as asynchronous. If instruction $$$i$$$ is asynchronous, its timestamp can be changed to any real number greater than $$$i$$$.

After all timestamp adjustments, all timestamps must be distinct. The processor then executes the instructions in order of increasing timestamp.

Determine the number of distinct final values of $$$A$$$ that can be obtained after all instructions have been executed, considering all possible choices of asynchronous instruction timestamps.

Input

The first line contains an integer $$$n$$$, denoting the number of instructions in the program ($$$1 \le n \le 2000$$$).

The $$$i$$$-th of the following $$$n$$$ lines describes instruction $$$i$$$ and contains three tokens. The first token is either '+' or '=', denoting the type of the instruction. The second token is an integer $$$v$$$, denoting the argument of the instruction ($$$1 \le v \le 500$$$). Finally, the third token is either "async" if the instruction is marked as asynchronous, or "sync" otherwise.

Output

Print the number of distinct final values $$$A$$$ can take after executing the program.

Examples

Input
3
+ 1 sync
= 2 async
+ 3 async
Output
2
Input
10
= 7 async
+ 3 async
+ 5 sync
+ 3 async
= 1 sync
+ 9 async
+ 10 async
+ 1 sync
+ 3 async
+ 4 sync
Output
30

Note

In the first test, the program execution starts with instruction $$$1$$$ setting $$$A$$$ to $$$1$$$. Then, instructions $$$2$$$ and $$$3$$$ are executed in one of the two orders:

Thus, there are two possible values of $$$A$$$ at the end: $$$5$$$ and $$$2$$$.