#include <bits/stdc++.h>
using namespace std;
int mmin(const int a, const int b) { return a > b ? b : a; }
int mmax(const int a, const int b) { return a > b ? a : b; }
int main() {
  int t;
  scanf("%d", &t);
  for (int i = 0; i < t; i++) {
    int n;
    scanf("%d", &n);
    int m1 = 0, m2 = 0, cnt = 0;
    for (int j = 0; j < n; j++) {
      int x;
      scanf("%d", &x);
      if (x >= 1) cnt++;
      if (x > m1) {
        m2 = m1;
        m1 = x;
      } else if (x > m2) {
        m2 = x;
      }
    }
    int k = mmin(cnt - 2, m2 - 1);
    printf("%d\n", mmax(k, 0));
  }
  return 0;
}
