#include <bits/stdc++.h>
using namespace std;
int main() {
  int t;
  cin >> t;
  for (int q = 0; q < t; q++) {
    int n;
    cin >> n;
    vector<int> a(n + 1);
    vector<int> dist(n + 1, -1);
    vector<int> max_dist(n + 1, -1);
    for (int i = 0; i < n; i++) {
      cin >> a[i];
    }
    for (int i = 0; i < n; i++) {
      max_dist[a[i]] = max(max_dist[a[i]], i - dist[a[i]]);
      dist[a[i]] = i;
    }
    for (int i = 0; i <= n; i++) {
      max_dist[i] = max(max_dist[i], n - dist[i]);
    }
    stack<pair<int, int>> m;
    m.push({0, n + 1});
    for (int i = 1; i <= n; i++) {
      if (m.top().second > max_dist[i]) {
        m.push({i, max_dist[i]});
      }
    }
    int ans = -1;
    for (int i = 1; i <= n; i++) {
      if (i >= m.top().second) {
        ans = m.top().first;
        m.pop();
      }
      cout << ans << ' ';
    }
    cout << '\n';
  }
}
