#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <queue>
#include <cmath>
#include <vector>
#include <set>
#include <map>
using namespace std;
#define ll long long
#define INF 0x3f3f3f3f
const int N = 1e6+10;
const int M = N*4;
const int mod = 998244353;
int a[N];
ll jc(int n) {
if(n == 0)
return 1;
return (n * jc(n-1));
}
int cantor(int *a, int n) {
ll total = 0;
for(int i = 0; i < n-1; ++i) {
int num = n - i - 1;
int sum = 0;
for(int j = i+1; j < n; ++j) {
if(a[j] < a[i])
sum++;
}
total = (total + (sum * jc(num))) % mod;
}
return ((total + 1) % mod);
}
int main() {
ios::sync_with_stdio(false); cin.tie(0);
int n;
cin >> n;
for(int i = 0; i < n; ++i) {
cin >> a[i];
}
cout << cantor(a, n);
return 0;
}