#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define double long double
const int M = 1000000007;
const int N = 3e5+9;
const int INF = 2e9+1;
const int LINF = 2000000000000000001;
inline int power(int base, int exp) {
int res = 1;
while (exp > 0) {
if (exp % 2 == 1) res = (res * base)%M;
base = (base * base);
exp /= 2;
}
return res;
}
//_ ***************************** START Below *******************************
// 3
// 5
// 1 3 4 2 2
// 5
// 3 1 3 4 2
// 5
// 3 3 3 3 3
vector<int> a;
int count(int n, int mid){
int ct = 0;
for(int i=0; i<n; i++){
if(a[i] <= mid) ct++;
}
return ct;
}
int consistency1(int n) {
int s = 1;
int e = n-1;
int ans = 0;
while(s<=e){
int mid = s + (e-s)/2;
if(count(n, mid) > mid) {
ans = mid;
e = mid-1;
}
else s = mid+1;
}
return ans;
}
int consistency2(int n){
int s = 1, e = n-1;
while(s<e){
int mid = s + (e-s)/2;
if(count(n, mid) > mid){
e = mid;
}
else s = mid+1;
}
return e;
}
int practice(int n){
return 0;
}
void solve() {
int n;
cin >> n;
a.resize(n);
for(int i=0; i<n; i++) cin >> a[i];
cout << consistency1(n) << " " << consistency2(n) << endl;
// cout << consistency1(n) << " -> " << practice(n) << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50ICAgICAgICAgICAgICBsb25nIGxvbmcgaW50CiNkZWZpbmUgZG91YmxlICAgICAgICAgICBsb25nIGRvdWJsZQoKCmNvbnN0IGludCBNID0gMTAwMDAwMDAwNzsKY29uc3QgaW50IE4gPSAzZTUrOTsKY29uc3QgaW50IElORiA9IDJlOSsxOwpjb25zdCBpbnQgTElORiA9IDIwMDAwMDAwMDAwMDAwMDAwMDE7CgoKaW5saW5lIGludCBwb3dlcihpbnQgYmFzZSwgaW50IGV4cCkgewogICAgaW50IHJlcyA9IDE7CiAgICB3aGlsZSAoZXhwID4gMCkgewogICAgICAgIGlmIChleHAgJSAyID09IDEpIHJlcyA9IChyZXMgKiBiYXNlKSVNOwogICAgICAgIGJhc2UgPSAoYmFzZSAqIGJhc2UpOwogICAgICAgIGV4cCAvPSAyOwogICAgfQogICAgcmV0dXJuIHJlczsKfQoKCi8vXyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBTVEFSVCBCZWxvdyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgovLyAzCi8vIDUKLy8gMSAzIDQgMiAyCi8vIDUKLy8gMyAxIDMgNCAyCi8vIDUKLy8gMyAzIDMgMyAzCgoKCnZlY3RvcjxpbnQ+IGE7CmludCBjb3VudChpbnQgbiwgaW50IG1pZCl7CiAgICBpbnQgY3QgPSAwOwogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKICAgICAgICBpZihhW2ldIDw9IG1pZCkgY3QrKzsKICAgIH0KICAgIHJldHVybiBjdDsKfQoKCgoKaW50IGNvbnNpc3RlbmN5MShpbnQgbikgewogICAgaW50IHMgPSAxOwogICAgaW50IGUgPSBuLTE7CiAgICBpbnQgYW5zID0gMDsKICAgIAogICAgd2hpbGUoczw9ZSl7CiAgICAgICAgaW50IG1pZCA9IHMgKyAoZS1zKS8yOwogICAgICAgIGlmKGNvdW50KG4sIG1pZCkgPiBtaWQpIHsKICAgICAgICAgICAgYW5zID0gbWlkOwogICAgICAgICAgICBlID0gbWlkLTE7CiAgICAgICAgfQogICAgICAgIGVsc2UgcyA9IG1pZCsxOwogICAgfQogICAgcmV0dXJuIGFuczsKfQoKCgoKCmludCBjb25zaXN0ZW5jeTIoaW50IG4pewogICAgaW50IHMgPSAxLCBlID0gbi0xOwogICAgd2hpbGUoczxlKXsKICAgICAgICBpbnQgbWlkID0gcyArIChlLXMpLzI7CiAgICAgICAgaWYoY291bnQobiwgbWlkKSA+IG1pZCl7CiAgICAgICAgICAgIGUgPSBtaWQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgcyA9IG1pZCsxOwogICAgfQogICAgcmV0dXJuIGU7Cn0KCgoKCgoKCgoKCgoKaW50IHByYWN0aWNlKGludCBuKXsKCQoJCgkKCQoJcmV0dXJuIDA7Cn0KCgp2b2lkIHNvbHZlKCkgewoKCWludCBuOwoJY2luID4+IG47CgkKCWEucmVzaXplKG4pOwoJZm9yKGludCBpPTA7IGk8bjsgaSsrKSBjaW4gPj4gYVtpXTsKCQoJY291dCA8PCBjb25zaXN0ZW5jeTEobikgPDwgIiAiIDw8IGNvbnNpc3RlbmN5MihuKSA8PCBlbmRsOwoJLy8gY291dCA8PCBjb25zaXN0ZW5jeTEobikgPDwgIiAtPiAiIDw8IHByYWN0aWNlKG4pIDw8IGVuZGw7CgkKCn0KCgoKCgppbnQzMl90IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKCgkKICAgIGludCB0ID0gMTsKCWNpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIHNvbHZlKCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=