#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
while(t--){
long long d,n,s,p;
cin >> d >> n >> s >> p;
// cout << d << " " << n << " " << s << " " << p << endl;
long long a[n];
map<int,int> c;
int b[n];
for(int i=0;i<n;i++){
cin >> a[i];
}
sort(a,a+n);
for(int i=0;i<n;i++){
c[a[i]]++;
b[i] = c[a[i]];
}
long long dist;
if(p > s){
dist = p - (s+1);
}
else{
dist = s-1 - p;
}
// cout << dist << endl;
// cout << high << endl;
if(abs(s-p) == 1){
cout << 0 << endl;
}
else{
long long ans(-1);
long long low = 0;
long long high = dist-1;
// cout << high << endl;
high = min(high,n-1);
// cout << high << endl;
long long lim;
if(p > s){
lim = p-1;
}
else{
lim = d - p;
}
lim--;
// cout << lim << endl;
while(low <= high){
int mid = low + (high - low + 1)/2;
long long midVal = a[mid];
midVal = midVal + b[mid] - 1;
if(midVal < lim){
ans = mid;
low = mid + 1;
}
else if(midVal > lim){
high = mid - 1;
}
else if(midVal == lim){
ans = mid;
break;
}
}
cout << ans + 1 << endl;
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWludCB0OwoJY2luID4+IHQ7Cgl3aGlsZSh0LS0pewoJCWxvbmcgbG9uZyBkLG4scyxwOwoJCWNpbiA+PiBkID4+IG4gPj4gcyA+PiBwOwoJCS8vIGNvdXQgPDwgZCA8PCAiICIgPDwgbiA8PCAiICIgPDwgcyA8PCAiICIgPDwgcCA8PCBlbmRsOwoJCWxvbmcgbG9uZyBhW25dOwoJCW1hcDxpbnQsaW50PiBjOwoJCWludCBiW25dOwoJCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCQljaW4gPj4gYVtpXTsKCQl9CgkJc29ydChhLGErbik7CgkJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJCWNbYVtpXV0rKzsKCQkJYltpXSA9IGNbYVtpXV07CgkJfQoJCWxvbmcgbG9uZyBkaXN0OwoJCWlmKHAgPiBzKXsKCQkJZGlzdCA9IHAgLSAocysxKTsKCQl9CgkJZWxzZXsKCQkJZGlzdCA9IHMtMSAtIHA7CgkJfQoJCS8vIGNvdXQgPDwgZGlzdCA8PCBlbmRsOwoJCS8vIGNvdXQgPDwgaGlnaCA8PCBlbmRsOwoJCWlmKGFicyhzLXApID09IDEpewoJCQljb3V0IDw8IDAgPDwgZW5kbDsKCQl9CgkJZWxzZXsKCQkJbG9uZyBsb25nIGFucygtMSk7CgkJCWxvbmcgbG9uZyBsb3cgPSAwOwoJCQlsb25nIGxvbmcgaGlnaCA9IGRpc3QtMTsKCQkJLy8gY291dCA8PCBoaWdoIDw8IGVuZGw7CgkJCWhpZ2ggPSBtaW4oaGlnaCxuLTEpOwoJCQkvLyBjb3V0IDw8IGhpZ2ggPDwgZW5kbDsKCQkJbG9uZyBsb25nIGxpbTsKCQkJaWYocCA+IHMpewoJCQkJbGltID0gcC0xOwoJCQl9CgkJCWVsc2V7CgkJCQlsaW0gPSBkIC0gcDsKCQkJfQoJCQlsaW0tLTsKCQkJLy8gY291dCA8PCBsaW0gPDwgZW5kbDsKCQkJd2hpbGUobG93IDw9IGhpZ2gpewoJCQkJaW50IG1pZCA9IGxvdyArIChoaWdoIC0gbG93ICsgMSkvMjsKCQkJCWxvbmcgbG9uZyBtaWRWYWwgPSBhW21pZF07CgkJCQltaWRWYWwgPSBtaWRWYWwgKyBiW21pZF0gLSAxOwoJCQkJCgkJCQlpZihtaWRWYWwgPCBsaW0pewoJCQkJCWFucyA9IG1pZDsKCQkJCQlsb3cgPSBtaWQgKyAxOwoJCQkJfQoJCQkJZWxzZSBpZihtaWRWYWwgPiBsaW0pewoJCQkJCWhpZ2ggPSBtaWQgLSAxOwoJCQkJfSAKCQkJCWVsc2UgaWYobWlkVmFsID09IGxpbSl7CgkJCQkJYW5zID0gbWlkOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQl9CgkJCWNvdXQgPDwgYW5zICsgMSA8PCBlbmRsOwoJCX0KCX0KCXJldHVybiAwOwp9