编程题
### 问题描述
大衣开了一家医院,有以下几种血型的捐献者共 $N$ 人:
- 血型 $A$ 的人可以捐血给血型 $A$ 和血型 $AB$ 的人。
- 血型 $B$ 的人可以捐血给血型 $B$ 和血型 $AB$ 的人。
- 血型 $AB$ 的人只能捐血给血型 $AB$ 的人。
- 血型 $O$ 的人可以捐血给血型 $A$、血型 $B$ 和血型 $AB$ 的人。
现在给你这 $N$ 名捐献者的血型类型,第 $i$ 个人血型为 $C_i$,大衣想要选一些人形成**捐献链**,即 $1\rightarrow 3\rightarrow2\rightarrow\dots\rightarrow x$,表示第 $i$ 个人捐血给第 $i+1$ 个人,求这条链最大长度。
### 输入格式
第一行输入一个正整数 $N$ 表示捐献者数量。
第二行输入 $N$ 个字符串 $C_i$ 表示每个捐献者的血型。
### 输出格式
输出一个数字表示这条链最大长度。
### 样例输入1
```text
3
A B A
```
### 样例输出1
```text
2
```
### 样例输入2
```text
2
A B
```
### 样例输出2
```text
1
```
### 样例输入3
```text
5
AB A A AB A
```
### 样例输出3
```text
5
```
### 说明
- 样例 $1$:第 $1$ 个人可以捐血给第 $3$ 个人,所以该捐献链长度为 $2$ 是最长的。
- 样例 $2$:没有人可以捐血给别人,因此最长链为单独一个人。
- 样例 $3$:最长捐献链为 $2\rightarrow3\rightarrow5\rightarrow1\rightarrow4$。
### 评测数据规模
对于所有的评测数据,$1\le N\le 2\times10^5$,$C_i\in${$A,B,AB,O$}。