```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
fmt.Fscan(reader, &t)
for ; t > 0; t-- {
var n int
fmt.Fscan(reader, &n)
var prev int
fmt.Fscan(reader, &prev)
minMax := 2000000000
for i := 1; i < n; i++ {
var curr int
fmt.Fscan(reader, &curr)
mx := prev
if curr > mx {
mx = curr
}
if mx < minMax {
minMax = mx
}
prev = curr
}
fmt.Fprintln(writer, minMax-1)
}
}
```