import java.util.Scanner;
//康拓排列序数
public class KangTuo {
static int visited[];
public static long getResult(int[] data){
int len = data.length;
int[] jc = new int[len];
jc[0] = 1;
for(int i=1; i<len; i++){
jc[i] = jc[i-1]*i;
}
long sum = 0;
int i = len-1;
for(int j=0; j<len; j++){
int t = data[j];
visited[t] = 1;
t = t-1;
int p = t;
for(int k=0; k<=p; k++){
t -= visited[k];
}
sum += t*jc[i];
i --;
}
return sum;
}
/**
* @param args
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] data = new int[n];
for(int i=0; i<n; i++){
data[i] = sc.nextInt();
}
visited = new int[n+1];
System.out.println(getResult(data));
}
}