← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var T int
	if _, err := fmt.Fscan(in, &T); err != nil {
		return
	}

	for t := 0; t < T; t++ {
		var s, tStr string
		fmt.Fscan(in, &s, &tStr)

		n := len(s)
		nxt := make([][26]int, n+1)
		for c := 0; c < 26; c++ {
			nxt[n][c] = n
		}
		for i := n - 1; i >= 0; i-- {
			for c := 0; c < 26; c++ {
				nxt[i][c] = nxt[i+1][c]
			}
			nxt[i][s[i]-'a'] = i
		}

		m := len(tStr)
		possible := false

		dp := make([][]int, m+1)
		for i := 0; i <= m; i++ {
			dp[i] = make([]int, m+1)
		}

		for k := 0; k <= m; k++ {
			for i := 0; i <= k; i++ {
				for j := 0; j <= m-k; j++ {
					dp[i][j] = n + 1
				}
			}
			dp[0][0] = 0

			for i := 0; i <= k; i++ {
				for j := 0; j <= m-k; j++ {
					if dp[i][j] >= n {
						continue
					}
					if i < k {
						p := nxt[dp[i][j]][tStr[i]-'a']
						if p < n {
							if dp[i+1][j] > p+1 {
								dp[i+1][j] = p + 1
							}
						}
					}
					if j < m-k {
						p := nxt[dp[i][j]][tStr[k+j]-'a']
						if p < n {
							if dp[i][j+1] > p+1 {
								dp[i][j+1] = p + 1
							}
						}
					}
				}
			}

			if dp[k][m-k] <= n {
				possible = true
				break
			}
		}

		if possible {
			fmt.Fprintln(out, "YES")
		} else {
			fmt.Fprintln(out, "NO")
		}
	}
}