#define MD 998244353 struct S { Mint a,b,c,d; S(int){} S(Mint a,Mint b,Mint c,Mint d):a(a),b(b),c(c),d(d){} void operator+=(S const& s){ a+=s.a; b+=s.b; c+=s.c; d+=s.d; } }; int a[2d5],c[2d5]; { fenwickf; f.walloc(2d5,1); Mint sum=0; ll @n; rd(a(n)); coordcomp(n,a,c); rep(i,n){ S s=f.get(n-c[i]-1); sum+=a[i]*s.b+s.d; f.add(n-c[i],S(1,s.a,a[i],a[i]*s.a+s.c)); } wt(sum); }