最长上升子序列计数

给定一个长度为 nn 的数组 a1,a2,,ana_1,a_2,\dots ,a_n,问其中的最长上升子序列的长度。也就是说,我们要找到最大的 mm 以及数组 p1,p2,,pmp_1,p_2,\dots,p_m,满足 1p1<p2<<pmn1\leq p_1 < p_2 < \dots < p_m \leq n 并且 ap1<ap2<<apma_{p_1} < a_{p_2} < \dots < a_{p_m}。求出这样的数组的个数,由于答案很大,输出对10000000071000000007取模的结果。

输入格式

第一行一个数字 nn

接下来一行 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n

输出格式

一个数,表示个数。

样例输入

6
1 1 1 2 2 2

样例输出

9

数据规模

所有数据保证 1n1000,1ai1091\leq n\leq 1000, 1 \leq a_i \leq 10^9