description: Paprika loves permutations. She has an array a_1, a_2, ..., a_n. She wants to make the array a permutation of integers 1 to n.
  
  In order to achieve this goal, she can perform operations on the array. In each operation she can choose two integers i (1 ≤ i ≤ n) and x (x > 0), then perform a_i := a_i mod x (that is, replace a_i by the remainder of a_i divided by x). In different operations, the chosen i and x can be different.
  
  Determine the minimum number of operations needed to make the array a permutation of integers 1 to n. If it is impossible, output -1.
  
  A permutation is an array consisting of n distinct integers from 1 to n in arbitrary order. For example, [2,3,1,5,4] is a permutation, but [1,2,2] is not a permutation (2 appears twice in the array) and [1,3,4] is also not a permutation (n=3 but there is 4 in the array).
  
  Input
  
  Each test contains multiple test cases. The first line contains a single integer t (1 ≤ t ≤ 10^4) — the number of test cases. Description of the test cases follows.
  
  The first line of each test case contains an integer n (1 ≤ n ≤ 10^5).
  
  The second line of each test case contains n integers a_1, a_2, ..., a_n. (1 ≤ a_i ≤ 10^9).
  
  It is guaranteed that the sum of n over all test cases does not exceed 2 ⋅ 10^5.
  
  Output
  
  For each test case, output the minimum number of operations needed to make the array a permutation of integers 1 to n, or -1 if it is impossible.
  
  Example
  
  Input
  
  
  4
  2
  1 7
  3
  1 5 4
  4
  12345678 87654321 20211218 23571113
  9
  1 2 3 4 18 19 5 6 7
  
  
  Output
  
  
  1
  -1
  4
  2
  
  Note
  
  For the first test, the only possible sequence of operations which minimizes the number of operations is: 
  
    * Choose i=2, x=5. Perform a_2 := a_2 mod 5 = 2. 
  
  
  
  For the second test, it is impossible to obtain a permutation of integers from 1 to n.
solution: # template taken from https://github.com/cheran-senthil/PyRival/blob/master/templates/template.py
  
  import os
  import sys
  from io import BytesIO, IOBase
  import math
  #from heapq import heappop, heappush, heapify
  #from collections import deque
  mod = 1000000007
  
  def read():
      sys.stdin  = open('input.txt', 'r')  
      sys.stdout = open('output.txt', 'w') 
  
  # ------------------------------------------- Algos --------------------------------------------------------
  def primeFactors(n):
      arr = []
      while n % 2 == 0:
          arr.append(2)
          n = n // 2
      for i in range(3,int(math.sqrt(n))+1,2):
          while n % i== 0:
              arr.append(i)
              n = n // i
      if n > 2:
          arr.append(n)
      return arr
  def sieve(n):
      prime = [True for i in range(n+1)]
      p = 2
      while (p * p <= n):
          if (prime[p] == True):
              for i in range(p * p, n+1, p):
                  prime[i] = False
          p += 1
      return prime
  def isPrime(n) : # Check Prime Number or not 
      if (n <= 1) : return False
      if (n <= 3) : return True
      if (n % 2 == 0 or n % 3 == 0) : return False
      i = 5
      while(i * i <= n) : 
          if (n % i == 0 or n % (i + 2) == 0) : 
              return False
          i = i + 6
      return True
  def gcd(x, y):
      while y:
          x, y = y, x % y
      return x
  def lcm(a,b):
      return (a // gcd(a,b))* b
  
  # -------------------------------------------------- code -------------------------------------------------
  
  def main():
      t = int(input())
      for _ in range(t):
          n = int(input())
          arr = list(map(int, input().split()))
          brr = []
          crr = [-1 for i in range(n+1)]
          for i in range(n):
              if arr[i] > n:
                  brr.append(arr[i])
              else:
                  if crr[arr[i]] != -1:
                      brr.append(arr[i])
                  else:
                      crr[arr[i]] = 1
  
          brr.sort(reverse = True)
  
          ans = 0
          flag = True
  
          for i in range(1, n+1):
              if crr[i] == -1:
                  if i < int(math.ceil(brr[-1]/2)):
                      ans += 1
                      brr.pop()
                      crr[i] = 1
  
                  else:
                      flag = False
                      break
  
  
          if flag:
              print(ans)
  
          else:
              print(-1)
  
  # ---------------------------------------------- region fastio ---------------------------------------------
  BUFSIZE = 8192
  
  
  class FastIO(IOBase):
      newlines = 0
  
      def __init__(self, file):
          self._fd = file.fileno()
          self.buffer = BytesIO()
          self.writable = "x" in file.mode or "r" not in file.mode
          self.write = self.buffer.write if self.writable else None
  
      def read(self):
          while True:
              b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
              if not b:
                  break
              ptr = self.buffer.tell()
              self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
          self.newlines = 0
          return self.buffer.read()
  
      def readline(self):
          while self.newlines == 0:
              b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
              self.newlines = b.count(b"\n") + (not b)
              ptr = self.buffer.tell()
              self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
          self.newlines -= 1
          return self.buffer.readline()
  
      def flush(self):
          if self.writable:
              os.write(self._fd, self.buffer.getvalue())
              self.buffer.truncate(0), self.buffer.seek(0)
  
  
  class IOWrapper(IOBase):
      def __init__(self, file):
          self.buffer = FastIO(file)
          self.flush = self.buffer.flush
          self.writable = self.buffer.writable
          self.write = lambda s: self.buffer.write(s.encode("ascii"))
          self.read = lambda: self.buffer.read().decode("ascii")
          self.readline = lambda: self.buffer.readline().decode("ascii")
  
  
  sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout)
  input = lambda: sys.stdin.readline().rstrip("\r\n")
  
  # -------------------------------------------------- end region ---------------------------------------------
  
  if __name__ == "__main__":
      #read()
      main()