nlogn
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cstring>
#include <map>
using namespace std;
#define N 100000
int a[N], b[N], c[N];
int bs(int *f, int l, int r, int nu){
while (l < r){
int mid = (l + r) / 2;
if (f[mid] <= nu)l = mid + 1;
else r = mid;
}
return r;
}
int LIS(int *c, int n){
int ans = 0;
int *f = new int[N];
f[ans] = -1;
for (int i = 0; i < n; i++){
if (c[i] > f[ans]){
f[++ans] = c[i];
}
else f[bs(f, 1, ans, c[i])] = c[i];
}
return ans;
}
int main()
{
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
int a[N], b[N];
int n, p, q;
int t;
int la, lb;
scanf("%d", &t);
map<int, int> v;
for (int ca = 1; ca <= t; ca++)
{
v.clear();
scanf("%d %d %d", &n, &la, &lb);
la++, lb++;
for (int i = 0; i < la; i++)scanf("%d", a + i);
for (int i = 0; i < lb; i++){
scanf("%d", b + i);
v[b[i]] = i;
}
int len = 0;
for (int i = 0; i < la; i++){
if (v.count(a[i]) != 0){
c[len++] = v[a[i]];
}
}
printf("Case %d:%d\n", ca, LIS(c, len));
// getchar();
}
return 0;
}