#include using namespace std; #define rep(i,a,b) for(int i=a;i=b;i--) #define fore(i,a) for(auto& i:a) #define ff first #define ss second #define all(a) begin(a),end(a) #define allr(a) rbegin(a),rend(a) #define pb push_back using ll =long long; using pii=pair; using pll=pair; using vi=vector; using vll=vector; template inline bool chmin(T& a,T b){return a>b?a=b,1:0;} template inline bool chmax(T& a,T b){return a::max()/2; const ll INFL=numeric_limits::max()/2; ll n,l,k; vll x; void solve(){ sort(all(x)); auto f=[&](ll p)->bool { if(2*p>=l)return true; vector v; v.pb(0);v.pb(l-1);v.pb(l); rep(i,0,n){ ll L=(l+x[i]-p)%l; ll R=(L+2*p)%l; v.pb(L);v.pb(R); } sort(all(v));v.erase(unique(all(v)),end(v)); ll sz=v.size(); vll imos(sz); rep(i,0,n){ ll L=(l+x[i]-p)%l; ll R=(L+2*p)%l; ll Li=distance(begin(v),lower_bound(all(v),L)); ll Ri=distance(begin(v),lower_bound(all(v),R)); if(Li1){ ll mid=(ok+ng)/2; if(f(mid))ok=mid; else ng=mid; } cout<sync_with_stdio(0); int t;cin>>t; while(t--){ cin>>n>>l>>k; x.resize(n); rep(i,0,n)cin>>x[i]; solve(); } return 0; } /* */