← Home
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")
		}
	}
}