#include <bits/stdc++.h>
using namespace std;
#define pb emplace_back
int main()
{
int t = 1;
cin >> t;
while (t--)
{
int n, i, x, ok = 0;
cin >> n;
multiset<int> s;
for (i = 0; i < n; i++)
{
cin >> x;
s.insert(x);
}
int op = 0;
for (i = 1; i <= n; i++)
{
if (s.find(i) != s.end())
s.erase(s.find(i));
else
{
auto it = s.begin();
x = *it;
if (x < i)
op++;
else
{
ok = 1;
break;
}
s.erase(it);
}
}
if (ok == 1)
op = -1;
cout << op << endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgcGIgZW1wbGFjZV9iYWNrCgppbnQgbWFpbigpCnsKCiAgaW50IHQgPSAxOwogIGNpbiA+PiB0OwogIHdoaWxlICh0LS0pCiAgewoKICAgIGludCBuLCBpLCB4LCBvayA9IDA7CiAgICBjaW4gPj4gbjsKCiAgICBtdWx0aXNldDxpbnQ+IHM7CgogICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgICAgY2luID4+IHg7CiAgICAgIHMuaW5zZXJ0KHgpOwogICAgfQoKICAgIGludCBvcCA9IDA7CgogICAgZm9yIChpID0gMTsgaSA8PSBuOyBpKyspCiAgICB7CiAgICAgIGlmIChzLmZpbmQoaSkgIT0gcy5lbmQoKSkKICAgICAgICBzLmVyYXNlKHMuZmluZChpKSk7CgogICAgICBlbHNlCiAgICAgIHsKICAgICAgICBhdXRvIGl0ID0gcy5iZWdpbigpOwogICAgICAgIHggPSAqaXQ7CgogICAgICAgIGlmICh4IDwgaSkKICAgICAgICAgIG9wKys7CgogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICBvayA9IDE7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIHMuZXJhc2UoaXQpOwogICAgICB9CiAgICB9CgogICAgaWYgKG9rID09IDEpCiAgICAgIG9wID0gLTE7CgogICAgY291dCA8PCBvcCA8PCBlbmRsOwoKICAgIAogIH0KfQ==