import math
import numpy as np
distance = 0
Esperance = 0
N = int(input())
L = [int(x) for x in input().split()]
for i in range(N):
    Dice = list(range(1,N-i))
    if Dice != []:
        k = np.random.choice(Dice) #ランダムにkを選ぶ。
        Pourcentage = 1/len(Dice) #kが選ばれる確率。
        distance += 1 #左からk番目にいるスライムを右隣にいるスライムの位置まで移動させる
        Esperance += distance*Pourcentage #確率*移動距離
        L.remove(L[k]) #k番目のスライムを消去
print((int(Esperance*math.factorial(N-1))) % (10**9 + 7))