#include <bits/stdc++.h>
using namespace std;
void solve() {
  int q;
  cin >> q;
  int n, k, d;
  unordered_map<int, int> used;
  int k1 = 1, a[200001];
  for (int p = 0; p < q; p++) {
    k1 = 1;
    cin >> n >> k >> d;
    cin >> a[0];
    used[a[0]] = 1;
    int mn = 1;
    for (int i = 1; i < n; i++) {
      cin >> a[i];
      if (i > d - 1) {
        used[a[i - d]]--;
        if (used[a[i - d]] == 0) k1--;
        used[a[i]]++;
        if (used[a[i]] == 1) k1++;
        mn = min(k1, mn);
      } else if (i == d - 1) {
        if (!used[a[i]]) k1++;
        used[a[i]]++;
        mn = k1;
      } else {
        if (!used[a[i]]) k1++;
        used[a[i]]++;
      }
    }
    used.clear();
    cout << mn << endl;
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  for (int i = 0; i < 1; i++) {
    solve();
    cout << endl;
  }
  return 0;
}
