#include #define rep(i,n) for(ll i=0;i<(ll)(n);i++) #define Yes cout << "Yes" << "\n" #define No cout << "No" << "\n" #define rtr0 return(0) #define all(x) x.begin(), x.end() using namespace std; #include using namespace atcoder; using mint=static_modint<998244353>; //using mint=static_modint<1000000007>; ////using mint=modint; #pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") using ll=long long; using l3=__int128; using ull=unsigned long long; using ld=long double; using P=pair; const ld PI=acos(-1); templatebool chmin(T&a,T b){if(a>b){a=b;return true;}return false;} templatebool chmax(T&a,T b){if(a dx={1,0,-1,0}; const vector dy={0,1,0,-1}; const int inf=1001001001; const ll INF=1001001001001001001; ll mod=998244353; //繰り返し二乗法 n^k modはグローバルに ll pow_mod(ll n,ll k){ if(k==0)return 1; if(k%2==1)return pow_mod(n,k-1)*n%mod; ll t=pow_mod(n,k/2); return t*t%mod; } void solve(){ ll N;cin>>N; mint n=N; mint ans=(2-n+n*(n-1)/2); mint p=1; rep(i,4)p*=(n-i); p/=24; p*=25; p/=36; cout<<(ans+p).val()<>t; rep(i,t)solve(); }