#include using namespace std; using ll = long long; const ll mod = 998244353; ll sums(ll n) { return (n % mod) * ((n + 1) % mod) / 2 % mod; } // 各ケースを解く関数 void solve() { ll n, a; cin >> n >> a; if(a == 1) { cout << sums(n-1) << endl; return; } else{ ll now = n; ll ans = 0; // nowからnにするためのコストを持つ ll cost = 0; while(now > 0) { ll next = now / a; // [next + 1, now] までの数字をnowにするためのコストの総和 ans += sums(now - next - 1) % mod; // nowになった数字をnにするためのコストの総和 ans += (now - next) % mod * cost % mod; // nextからnにするためのコストを更新 cost += now % a + 1; cost %= mod; now = next; } ans %= mod; cout << ans << endl; } } int main(){ int t; cin >> t; while(t--) solve(); }