#include<cstdio>
#include<algorithm>
inline int abs(int q){return q<0?-q:q;}
int t,n,m,a,b,s[200005],x,y,mid,l,r;
bool judge(){
    for(int i=0;i<mid;i++)
        if(s[i]+mid-i-1>=y) return false;
    return true;
}
int main(){
    scanf("%d",&t);
    while(t--){
        scanf("%d%d%d%d",&n,&m,&a,&b);
        for(int i=0;i<m;i++)
            scanf("%d",s+i);
        y=a<b?b-1:n-b;
        x=abs(a-b)-1;
        l=0; r=m+1;
        std::sort(s,s+m);
        while(r>l+1){
            mid=(r+l)>>1;
            if(judge()) l=mid;
            else r=mid;
        }
        printf("%d\n",l<x?l:x);
    }
    return 0;
}