#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 1000000000000000001 int main(){ int n; cin>>n; queue> Q; rep(i,n){ long long a; cin>>a; vector v; v.push_back(1); v.push_back(a); Q.push(v); } while(Q.size()>=2){ vector v1=Q.front(); Q.pop(); vector v2=Q.front(); Q.pop(); vector v3 = convolution(v1,v2); Q.push(v3); } mint kaijou = 1; mint ans = 0; for(int i=1;i<=n;i++){ mint t = Q.front()[i]; t *= mint(i).pow(n-i); kaijou /= i; //t *= kaijou; ans += t; } cout<