#include using namespace std; #include using mint = atcoder::modint998244353; void solve() { long long N, M; cin >> M >> N; vector> dp(N+1, vector(3)); dp[0][0] = 1; for( int i = 1; i <= N; i++ ) { dp[i][0] = dp[i-1][0]+dp[i-1][1]+dp[i-1][2]; dp[i][1] = dp[i-1][0]*M+dp[i-1][1]*(M-1)+dp[i-1][2]*(M-2); dp[i][2] = dp[i-1][0]*M*(M-3)/2+dp[i-1][1]*(M-2)*(M-3)/2+dp[i-1][2]*(M*M-7*M+14)/2; } cout << accumulate(dp[N].begin(), dp[N].end(), mint(0)).val() << endl; } int main() { int T; cin >> T; while(T--) { solve(); } }