#include int a[200005]; int cnt[200005]; void solve() { int n; scanf("%d", &n); int i; for (i = 0; i < n; i++) scanf("%d", &a[i]); if (n == 1) { if (a[0] > 0) printf("%d\n", a[0]); else printf("1\n"); return; } int min, mid, max; min = 0; max = n + 1; int m; while (max - min > 1) { mid = (max + min) / 2; for (i = 0; i < mid; i++) cnt[i] = 0; for (i = 0; i < n; i++) { if (a[i] < mid) cnt[a[i]]++; else cnt[0]++; } m = 1; for (i = mid - 1; i > 0; i--) { if (cnt[i] > m) { cnt[0] += cnt[i] - m; } else { m += m - cnt[i]; } } if (cnt[0] < m) max = mid; else min = mid; } printf("%d\n", min); return; } int main() { int T; scanf("%d", &T); for (; T > 0; T--) solve(); return 0; }