1 #include <iostream>
2 #include <cstdio>
3 #include <cstring>
4 #include <algorithm>
5 using namespace std;
6 int n1,n,m;
7 int i,j,t;
8 int nowx,ans,x;
9 int a[10000+10],b[10000+10],ha[10000+10];
10 int main()
11 {
12 int left,right,mid;
13 scanf("%d",&n1);
14 for (i=1;i<=n1;i++)
15 {
16 memset(a,0,sizeof(a));
17 memset(b,0,sizeof(b));
18 memset(ha,0,sizeof(ha));
19 ans=0; t=1;
20 scanf("%d",&x);
21 scanf("%d",&n);
22 for (j=1;j<=n;j++)
23 scanf("%d",&a[j]);
24 scanf("%d",&m);
25 for (j=1;j<=m;j++)
26 scanf("%d",&b[j]);
27 sort(a+1,a+n+1);
28 sort(b+1,b+m+1);
29 for (j=2;j<=m;j++)
30 if (b[j]!=b[j-1])
31 {
32 ha[j-1]=t;
33 t=1;
34 }
35 else
36 t++;
37 ha[m]=t;
38 for (j=1;j<=n;j++)
39 {
40 nowx=x-a[j];
41 left=0; right=m;
42 while (right-left>1)
43 {
44 mid=(left+right)>>1;
45 if (b[mid]<=nowx)
46 left=mid;
47 else
48 right=mid;
49 }
50 if (b[left]==nowx && ha[left]!=0)
51 ans+=ha[left];
52 if (b[right]==nowx)
53 ans+=ha[right];
54 }
55 printf("%d
",ans);
56 }
57 }