#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int t,n,m,L=0,V;
int d[N],v[N],a[N],p[N],vis[N],fin[N*10];
signed main(){
freopen("detect3.in","r",stdin);
cin>>t;
while(t--){
for(int i=1;i<=L;i++) fin[i]=0;
scanf("%d%d%d%d",&n,&m,&L,&V);
for(int i=1;i<=n;i++) scanf("%d%d%d",d+i,v+i,a+i);
for(int i=1;i<=m;i++){scanf("%d",p+i);vis[i]=0;};vis[0]=0;
sort(p+1,p+m+1);p[m+1]=1e9;
int id=1;
for(int i=1;i<=L;i++){while(id<=m&&p[id]<i) id++;fin[i]=id;}
for(int i=1;i<=n;i++){
if(a[i]>0){
if(v[i]>V) {vis[fin[d[i]]]++;continue;}
int dis=d[i]+(V*V-v[i]*v[i])/(2*a[i])+1;
if(dis<=L) vis[fin[dis]]++;
}
if(a[i]==0&&v[i]>V) vis[fin[d[i]]]++;
}
int ans=0,flag=0;
for(int i=1;i<=m;i++) ans+=vis[i],flag=(flag||vis[i]);
printf("%d %d\n",ans,m-flag);
}
}