MOD=998244353 class BIT: def __init__(self,N): self.N=N self.bit=[0]*N def add(self,a,w): x=a while(x=0): ret+=self.bit[x] x=(x&(x+1))-1 return ret def cum(self,l,r): return self.get(r)-self.get(l) N=int(input()) A=list(map(int,input().split())) a=sorted(A) dic={} for i in range(N): dic[a[i]]=i cbit=BIT(N) sbit=BIT(N) lc,rc=[0]*N,[0]*N ls,rs=[0]*N,[0]*N for i in range(N): d=dic[A[i]] l=cbit.cum(d+1,N) lsum=sbit.cum(d+1,N)%MOD lc[i]=l ls[i]=lsum cbit.add(d,1) sbit.add(d,A[i]) cbit=BIT(N) sbit=BIT(N) for i in reversed(range(N)): d=dic[A[i]] r=cbit.get(d) rsum=sbit.get(d)%MOD rc[i]=r rs[i]=rsum cbit.add(d,1) sbit.add(d,A[i]) ans=0 for i in range(N): ans+=rc[i]*lc[i]*A[i] ans%=MOD ans+=rs[i]*lc[i] ans%=MOD ans+=ls[i]*rc[i] ans%=MOD print(ans)