#include <bits/stdc++.h>
using namespace std;
using ll = int64_t;
using ld = long double;
using P = pair<int, int>;
using vs = vector<string>;
using vi = vector<int>;
using vvi = vector<vi>;
template <class T>
using PQ = priority_queue<T>;
template <class T>
using PQG = priority_queue<T, vector<T>, greater<T> >;
const int INF = 100010001;
const ll LINF = (ll)INF * INF * 10;
template <typename T1, typename T2>
inline bool chmax(T1 &a, T2 b) {
  return a < b && (a = b, true);
}
template <typename T1, typename T2>
inline bool chmin(T1 &a, T2 b) {
  return a > b && (a = b, true);
}
template <typename T1, typename T2>
istream &operator>>(istream &is, pair<T1, T2> &p) {
  return is >> p.first >> p.second;
}
template <typename T1, typename T2>
ostream &operator<<(ostream &os, const pair<T1, T2> &p) {
  return os << p.first << ' ' << p.second;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int q;
  cin >> q;
  while (q--) {
    int t;
    ll k;
    cin >> t >> k;
    map<int, int> mp;
    for (int i = 0; i < t; ++i) {
      int a;
      cin >> a;
      mp[a % k]++;
    }
    int i = -1, ma = 0;
    for (P x : mp) {
      if (x.first == 0) continue;
      if (chmax(ma, x.second)) i = x.first;
    }
    if (i == -1)
      cout << 0 << '\n';
    else
      cout << (ma - 1) * k + k - i + 1 << '\n';
  }
}
