A - Suma de tríos

Time limit: 2 seconds
Memory limit: 256 megabytes
Languages: MS C# .NET 4.7.2053,GNU G++11 5.1.0 ...

Se tiene una lista de números y se desea calcular la suma de la multiplicación, de todos los tríos de elementos que se pueden formar. Los elementos de cada trío deben aparecer en posiciones diferentes de la lista y dos tríos son considerados iguales si las posiciones de sus elementos son las mismas, pero en diferente orden.

Input

La primera línea de la entrada es un entero $N$ $(1 \leq N \leq 10^{6})$ que indica la cantidad de números en la lista. Le siguen los $N$ enteros en una línea, separados por un espacio. Los números de la lista están siempre entre $1$ y $100$.

Output

La salida es un entero, indicando la suma de la multiplicación de los tríos que se pueden formar con todos los enteros de la lista. Como este número puede ser muy grande se debe responder el resto de su división por 1000000007.

Sample test(s)

Input
3 1 2 3
Output
6