#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m;
int t[2000005];
int a[1000005];
long long jc[1000005];
const int mod=998244353;
int lowbit(int q){
return q&-q;
}
int one_point(int x,int k){
for(int i=x;i<=n;i+=lowbit(i)){
t[i]+=k;
}
}
int ask_front(int la){
long long sum=0;
for(int i=la;i;i-=lowbit(i)){
sum+=t[i];
}
return sum;
}
main(){
int n;
cin>>n;
jc[0]=jc[1]=1;
for(int i=1;i<=n;i++){
jc[i]=(jc[i-1]*i)%mod;
one_point(i,1);
}
long long ans=1;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
ans+=((ask_front(a[i])-1)%mod+jc[n-i]%mod)%mod;
one_point(a[i],-1);
}
cout<<ans<<"\n";
return 0;
}