#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 *******************************
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+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50ICAgICAgICAgICAgICBsb25nIGxvbmcgaW50CiNkZWZpbmUgZG91YmxlICAgICAgICAgICBsb25nIGRvdWJsZQoKCmNvbnN0IGludCBNID0gMTAwMDAwMDAwNzsKY29uc3QgaW50IE4gPSAzZTUrOTsKY29uc3QgaW50IElORiA9IDJlOSsxOwpjb25zdCBpbnQgTElORiA9IDIwMDAwMDAwMDAwMDAwMDAwMDE7CgoKaW5saW5lIGludCBwb3dlcihpbnQgYmFzZSwgaW50IGV4cCkgewogICAgaW50IHJlcyA9IDE7CiAgICB3aGlsZSAoZXhwID4gMCkgewogICAgICAgIGlmIChleHAgJSAyID09IDEpIHJlcyA9IChyZXMgKiBiYXNlKSVNOwogICAgICAgIGJhc2UgPSAoYmFzZSAqIGJhc2UpOwogICAgICAgIGV4cCAvPSAyOwogICAgfQogICAgcmV0dXJuIHJlczsKfQoKCi8vXyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBTVEFSVCBCZWxvdyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgp2ZWN0b3I8aW50PiBhOwppbnQgY291bnQoaW50IG4sIGludCBtaWQpewogICAgaW50IGN0ID0gMDsKICAgIGZvcihpbnQgaT0wOyBpPG47IGkrKyl7CiAgICAgICAgaWYoYVtpXSA8PSBtaWQpIGN0Kys7CiAgICB9CiAgICByZXR1cm4gY3Q7Cn0KCgoKCmludCBjb25zaXN0ZW5jeTEoaW50IG4pIHsKICAgIGludCBzID0gMTsKICAgIGludCBlID0gbi0xOwogICAgaW50IGFucyA9IDA7CiAgICAKICAgIHdoaWxlKHM8PWUpewogICAgICAgIGludCBtaWQgPSBzICsgKGUtcykvMjsKICAgICAgICBpZihjb3VudChuLCBtaWQpID4gbWlkKSB7CiAgICAgICAgICAgIGFucyA9IG1pZDsKICAgICAgICAgICAgZSA9IG1pZC0xOwogICAgICAgIH0KICAgICAgICBlbHNlIHMgPSBtaWQrMTsKICAgIH0KICAgIHJldHVybiBhbnM7Cn0KCgoKCgppbnQgY29uc2lzdGVuY3kyKGludCBuKXsKICAgIGludCBzID0gMSwgZSA9IG4tMTsKICAgIHdoaWxlKHM8ZSl7CiAgICAgICAgaW50IG1pZCA9IHMgKyAoZS1zKS8yOwogICAgICAgIGlmKGNvdW50KG4sIG1pZCkgPiBtaWQpewogICAgICAgICAgICBlID0gbWlkOwogICAgICAgIH0KICAgICAgICBlbHNlIHMgPSBtaWQrMTsKICAgIH0KICAgIHJldHVybiBlOwp9CgoKCgoKCgoKCgoKCmludCBwcmFjdGljZShpbnQgbil7CgkKCQoJCgkKCXJldHVybiAwOwp9CgoKdm9pZCBzb2x2ZSgpIHsKCglpbnQgbjsKCWNpbiA+PiBuOwoJCglhLnJlc2l6ZShuKTsKCWZvcihpbnQgaT0wOyBpPG47IGkrKykgY2luID4+IGFbaV07CgkKCWNvdXQgPDwgY29uc2lzdGVuY3kxKG4pIDw8ICIgIiA8PCBjb25zaXN0ZW5jeTIobikgPDwgZW5kbDsKCS8vIGNvdXQgPDwgY29uc2lzdGVuY3kxKG4pIDw8ICIgLT4gIiA8PCBwcmFjdGljZShuKSA8PCBlbmRsOwoJCgp9CgoKCgoKaW50MzJfdCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgoJCiAgICBpbnQgdCA9IDE7CgljaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQoKICAgIHJldHVybiAwOwp9