编程题
### 问题描述
云神获得了 $n$ 个立方体,按照特定顺序,并且他想用它们建造塔。每当两个立方体相互叠放时,上面的立方体必须小于下面的立方体。
他必须按照给定的顺序处理这些立方体。他总是可以把立方体放在已有的塔顶部,或者开始建造一座新的塔。他想知道最少需要的塔数。
### 输入格式
第一行包含一个整数 $n$,表示立方体的数量。
接下来一行包含 $n$ 个整数 $k_1, k_2, \ldots, k_n$,表示每个立方体的大小。
### 输出格式
输出一个整数,表示最少需要的塔的数量。
### 样例输入
```
5
3 8 2 1 5
```
### 样例输出
```
2
```
### 评测数据规模
$1 \leq n \leq 10^5$,$1 \leq k_i \leq 10^9$。