#include <iostream>
#include <map>
#include <vector>
using namespace std;
//1.需要允许map的value < 0表示超过计数
//2.在i >= m后需要先处理a[i - m]再处理a[i]
int main() {
int t;
cin >> t;
int n, m, k;
map<int, int> b;
vector<int> a;
while (t--) {
b.clear();
a.clear();
cin >> n >> m >> k;
int tmp;
for (int i = 0; i < n; i++) {
cin >> tmp;
a.push_back(tmp);
}
for (int i = 0; i < m; i++) {
cin >> tmp;
b[tmp]++;
}
int ans = 0, cnt = 0;
for (int i = 0; i < a.size(); i++) {
if (i >= m) {
if (b.find(a[i - m]) != b.end()) {
if (b[a[i - m]] >= 0) cnt--;
b[a[i - m]]++;
}
}
if (b.find(a[i]) != b.end()) {
if (b[a[i]] > 0) cnt++;
b[a[i]]--;
}
if (i >= m - 1) {
ans += cnt >= k ? 1 : 0;
}
}
cout << ans << endl;
}
}