#include<cstdio> #include<iostream> #include<algorithm> using namespace std; int main() { int t; scanf("%d", &t); while(t--) { int n, m;//二分m scanf("%d%d", &n, &m); int i, j, x, znum = 0; int flag[m+5]; memset(flag, 0, sizeof(flag)); for(i = 0; i < n; i++) { scanf("%d", &x); if(x == 0) znum++; else flag[x] = 1; } int l = 1, r = m, mid; int sum, p; while(l+1<r) { mid = (l+r)/2; sum = 0; p = 0; for(i = 1; i <= mid; i++ ) if(flag[i] == 0) sum++; if(sum<=znum) p = 1; else { for(i = 2; i < m-mid; i++) { if(flag[i-1] == 0) sum--; if(flag[i+mid-1] == 0) sum++; if(sum<=znum) {p = 1; break;} } } if(p) l = mid; else r = mid; //printf("%d %d\n", l, r); } p = 0; sum = 0; for(i = 1; i <= r; i++ ) if(flag[i] == 0) sum++; if(sum<=znum) p = 1; else { for(i = 2; i < m-r; i++) { if(flag[i-1] == 0) sum--; if(flag[i+r-1] == 0) sum++; if(sum<=znum) {p = 1; break;} } } if(p) printf("%d\n", r); else printf("%d\n", l); } return 0; }