#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx,popcnt,sse4,abm")
#include<bits/stdc++.h>
//#pragma GCC target("popcnt")
using namespace std;
#define int long long
int ttt;
int n;int K;
int ar[500005];
void solve(){
cin>>n>>K;
for(int i=1;i<=n;i++){
cin>>ar[i];
ar[i]%=K;
}
priority_queue<int,vector<int>,greater<int>>pq;
int ans=0;
int nw=0;
for(int i=1;i<=n;i++){
int dv=nw/K;
//if(ar[i]!=0){
//if(ar[i]==ar[i-1]&&i>=2){continue;}
if(ar[i]<=nw){
int v=dv*K+ar[i];
if(v<=nw){
pq.push((dv+1)*K+ar[i]-nw);
// cout<<(dv+1)*K+ar[i]-nw<<" ";
nw=v;
}else{
pq.push(dv*K+ar[i]-nw);
// cout<<dv*K+ar[i]-nw<<" ";
v=(dv-1)*K+ar[i];
nw=v;
}
}else{
int v=ar[i];
int c=v-nw;
if(pq.size()&&pq.top()<c){
c=pq.top();
pq.pop();
pq.push(v-nw);
}
nw=ar[i];
ans+=c;
}
//}
//cout<<nw<<" "<<ans<<endl;
}
cout<<ans<<endl;
}
signed main()
{
cin.tie(0);
ios_base::sync_with_stdio(0);
cin>>ttt;
while(ttt--)solve();
}
71A - Way Too Long Words | 160A - Twins |
1A - Theatre Square | 1614B - Divan and a New Project |
791A - Bear and Big Brother | 1452A - Robot Program |
344A - Magnets | 96A - Football |
702B - Powers of Two | 1036A - Function Height |
443A - Anton and Letters | 1478B - Nezzar and Lucky Number |
228A - Is your horseshoe on the other hoof | 122A - Lucky Division |
1611C - Polycarp Recovers the Permutation | 432A - Choosing Teams |
758A - Holiday Of Equality | 1650C - Weight of the System of Nested Segments |
1097A - Gennady and a Card Game | 248A - Cupboards |
1641A - Great Sequence | 1537A - Arithmetic Array |
1370A - Maximum GCD | 149A - Business trip |
34A - Reconnaissance 2 | 59A - Word |
462B - Appleman and Card Game | 1560C - Infinity Table |
1605C - Dominant Character | 1399A - Remove Smallest |