#P5022. 「长乐集训 2017 Day8」相交弧

「长乐集训 2017 Day8」相交弧

Description

在数轴上有 nn 个点,它们的坐标分别为 (1,0)(1,0) , (2,0)(2,0), \cdots , (n,0)(n,0).每个点都有一个颜色,坐标为 (i,0)(i,0) 的点颜色为 AiA_i .

AA 君在所有颜色相同的点对间都画上了圆弧。更具体地,若有 Ai=AjA_i = A_jiji \geq j,那么 AA 君会画一条圆弧连接(i,0)(i, 0) (j,0)(j, 0) ,且这条弧颜色为 AiA_i ,圆心在 XX 轴上,所有的圆弧都在第一象限内。

现在 AA 君想知道,有多少对不同颜色的圆弧相交了。请你告诉他答案模 109+710^9 + 7 后的值。

Input Format

第一行一个整数 nn 表示点数。

第二行 nn 个整数 AiA_i 表示所有点的颜色。

Output Format

仅一行一个整数表示答案。

Sample

样例输入

8
1 2 3 1 2 3 2 1

样例输出

8

Hint

20%20\%的数据: n10n \leq 10

40%40\% 的数据: n1000n \leq 1000

另有 30%30\% 的数据:每种颜色的点数不超过 2020

100%100\%的数据: 1n,Ai1051 \leq n,Ai \leq 10^5