#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int MAXN = 2e6 + 10, mmm = 998244353 ;
ll n, dgf[MAXN], inv[MAXN] ;
ll ftyguh (ll x, ll p = mmm - 2) {
ll ret = 1 ;
for (; p ; p >>= 1, x = x * x % mmm)
if (p & 1)
ret = ret * x % mmm ;
return ret ;
}
ll c (int x, int y) {
return dgf[x] * inv[y] % mmm * inv[x - y] % mmm ;
}
int main () {
dgf[0] = 1 ;
for (int i = 1 ; i <= 2e6 ; i++)
dgf[i] = dgf[i - 1] * i % mmm ;
inv[2000000] = ftyguh (dgf[2000000]) ;
for (int i = 2e6 - 1 ; ~i ; i--)
inv[i] = inv[i + 1] * (i + 1) % mmm ;
int T ;
scanf ("%d", &T) ;
while (T--) {
scanf ("%lld", &n) ;
int x = 1, y = 0 ;
ll s = 0 ;
while (n > x) n -= x;
x++ ;
y = n ;
for (int i = 0 ; i < y ; i++) {
int tx = x - i - 1, ty = y - i - 1 ;
s = (s + c (tx + ty + i, i) * ((c (tx + ty, tx) - c (tx + ty, tx + 1) + mmm) % mmm) % mmm) % mmm ;
}
printf ("%lld\n", s) ;
}
return 0 ;
}