#include<bits/stdc++.h>usingnamespacestd;constintmod=998244353;voidinc(int&a,intb){a+=b;a%=mod;}voidsolve(intn,intk){vector<vector<int>>dp(n+1,vector<int>(k+1,0));// dp[i][x] is the number of good binary strings of length n that has x
// zeroes as its suffix.
dp[0][0]=1;for(inti=0;i<n;i++){for(intx=0;x<k;x++){// Append a one.
inc(dp[i+1][0],dp[i][x]);// Append a zero if allowed.
if(x+1<k){inc(dp[i+1][x+1],dp[i][x]);}}}intans=0;for(intx=0;x<k;x++){inc(ans,dp[n][x]);}cout<<ans<<"\n";}intmain(){intt;cin>>t;for(inti=0;i<t;i++){intn,k;cin>>n>>k;solve(n,k);}return0;}