编程题
### 问题描述
硕鼠鼠处理一个数组,他将会得到一些操作。操作将会有三种类型:
类型 $1$:在数组末尾插入一个数字。
类型 $2$:删除数组中的最后一个数字,最后一个数字是最近插入的数字。
类型 $3$:得到一个数字和两个索引 $i$ 和 $j$,其中 $i \leq j$。现在他需要回答这个数字从 $i$ 到 $j$ 出现了多少次。
假设最开始数组是空的。
### 输入格式
第一行是一个整数 $Q$,表示操作的次数。
接下来的 $Q$ 行包含一个操作。操作将会以以下格式出现:
- $1$ $x$,其中 $1 \leq x \leq 10^5$,意味着他需要在数组末尾插入数字 $x$。
- $0$,对于这个操作,他需要删除数组中的最后一个数字。
- $2$ $x$ $i$ $j$,在这里,他需要找出数字 $x$ 在数组中从 $i$ 到 $j$ 出现了多少次。这里 $x$ 一定会在数组中出现,且 $1 \leq i \leq j \leq$ 数组长度。
### 输出格式
对于删除操作,如果数组已经是空的,那么输出字符串 `invalid`。否则对于删除数字你不需要打印任何东西。
对于操作类型为 $2$,需要输出一个整数,即数字 $x$ 在数组中从 $i$ 到 $j$(包括 $i$ 和 $j$)出现了多少次。
### 样例输入
```
7
1 10
1 20
2 20 1 2
0
2 10 1 1
0
0
```
### 样例输出
```
1
1
invalid
```
### 评测数据规模
$1 \leq Q \leq 10^5$。