package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
if !scanner.Scan() {
return
}
t, _ := strconv.Atoi(scanner.Text())
for tc := 0; tc < t; tc++ {
scanner.Scan()
n, _ := strconv.Atoi(scanner.Text())
a := make([]string, n)
for i := 0; i < n; i++ {
scanner.Scan()
a[i] = scanner.Text()
}
b := make([]string, n)
for i := 0; i < n; i++ {
scanner.Scan()
b[i] = scanner.Text()
}
possible := true
for i := 1; i < n; i++ {
same := true
opp := true
for j := 0; j < n; j++ {
if (a[0][j] == b[0][j]) != (a[i][j] == b[i][j]) {
same = false
} else {
opp = false
}
}
if !same && !opp {
possible = false
break
}
}
if possible {
fmt.Println("YES")
} else {
fmt.Println("NO")
}
}
}