You are given three strings $a$, $b$ and $c$ of the same length $n$. The strings consist of lowercase English letters only. The $i$-th letter of $a$ is $a_i$, the $i$-th letter of $b$ is $b_i$, the $i$-th letter of $c$ is $c_i$.

For every $i$ ($1 \leq i \leq n$) you must swap (i.e. exchange) $c_i$ with either $a_i$ or $b_i$. So in total you'll perform exactly $n$ swap operations, each of them either $c_i \leftrightarrow a_i$ or $c_i \leftrightarrow b_i$ ($i$ iterates over all integers between $1$ and $n$, inclusive).

For example, if $a$ is "code", $b$ is "true", and $c$ is "help", you can make $c$ equal to "crue" taking the $1$-st and the $4$-th letters from $a$ and the others from $b$. In this way $a$ becomes "hodp" and $b$ becomes "tele".

Is it possible that after these swaps the string $a$ becomes exactly the same as the string $b$?


-----Input-----

The input consists of multiple test cases. The first line contains a single integer $t$ ($1 \leq t \leq 100$)  — the number of test cases. The description of the test cases follows.

The first line of each test case contains a string of lowercase English letters $a$.

The second line of each test case contains a string of lowercase English letters $b$.

The third line of each test case contains a string of lowercase English letters $c$.

It is guaranteed that in each test case these three strings are non-empty and have the same length, which is not exceeding $100$.


-----Output-----

Print $t$ lines with answers for all test cases. For each test case:

If it is possible to make string $a$ equal to string $b$ print "YES" (without quotes), otherwise print "NO" (without quotes).

You can print either lowercase or uppercase letters in the answers.


-----Example-----
Input
4
aaa
bbb
ccc
abc
bca
bca
aabb
bbaa
baba
imi
mii
iim

Output
NO
YES
YES
NO



-----Note-----

In the first test case, it is impossible to do the swaps so that string $a$ becomes exactly the same as string $b$.

In the second test case, you should swap $c_i$ with $a_i$ for all possible $i$. After the swaps $a$ becomes "bca", $b$ becomes "bca" and $c$ becomes "abc". Here the strings $a$ and $b$ are equal.

In the third test case, you should swap $c_1$ with $a_1$, $c_2$ with $b_2$, $c_3$ with $b_3$ and $c_4$ with $a_4$. Then string $a$ becomes "baba", string $b$ becomes "baba" and string $c$ becomes "abab". Here the strings $a$ and $b$ are equal.

In the fourth test case, it is impossible to do the swaps so that string $a$ becomes exactly the same as string $b$.

Difficulty: interview

Starter code:

Solutions:
for _ in range(int(input())):
	a, b, c = input(), input(), input()
	n = len(a)

	ok = True
	for i in range(n):
		if c[i] not in [a[i], b[i]]:
			ok = False

	print('YES' if ok else 'NO')


for _ in range(int(input())):
    a=input()
    b=input()
    c=input()
    ans="YES"
    for i in range(len(a)):
        if a[i]!=c[i] and b[i]!=c[i]:ans="NO"
    print(ans)

t = int(input())

def test(a,b,c):
    for x,y,z in zip(a,b,c):
        if not (x==z or y==z):
            return False
    return True

for _ in range(t):
    a = input()
    b = input()
    c = input()
    if test(a,b,c):
        print("YES")
    else:
        print("NO")



for _ in range(int(input())):
    for a, b, c in zip(input(), input(), input()):
        if c not in (a, b):
            print("NO")
            break
    else:
        print("YES")


q = int(input())
for rwere in range(q):
	a = input()
	b = input()
	c = input()
	n = len(a)
	dasie = True
	for i in range(n):
		if c[i] == a[i] or c[i] == b[i]:
			continue
		else:
			dasie = False
	if dasie:
		print("YES")
	else:
		print("NO")

for _ in range(int(input())):
    a = input()
    b = input()
    c = input()
    n = len(a)
    flag = 0
    for i in range(n):
        if a[i]==c[i] or b[i]==c[i]:
            continue
        flag = 1
        break
    if flag==0:
        print("YES")
    else:
        print("NO")

T = int(input())
for _ in range(T):
    A = input()
    B = input()
    C = input()
    N = len(A)
    for i in range(N):
        if not (A[i] == C[i] or B[i] == C[i]):
            print("NO")
            break
    else:
        print("YES")


from math import *

zzz = int(input())
for zz in range(zzz):
    a = input()
    b = input()
    c = input()
    ha = True
    for i in range (len(a)):
        if not b[i] == c[i] and not a[i] == c[i]:
            ha= False
            break
    if not ha:
        print('NO')
    else:
        print('YES')


def mi():
	return map(int, input().split())

for _ in range(int(input())):
	a = list(input())
	b = list(input())
	c = list(input())
	np = False
	for i in range(len(a)):
		if a[i]==c[i] or b[i]==c[i]:
			continue
		np = True
		break
	if np:
		print ('NO')
	else:
		print ('YES')

t = int(input())

def test():
    a = input().strip()

    b = input().strip()

    c= input().strip()


    for x,y,z in zip(a,b,c):
        if z != x and z != y:
            print("NO"); return
    print("YES")
for _ in range(t):
    test()


t = int(input())
for _ in range(t):
    a = input()
    b = input()
    c = input()
    n = len(a)
    flag = True
    for i in range(n):
        if a[i] == c[i] or b[i] == c[i]:
            continue
        flag = False
    if flag:
        print("YES")
    else:
        print("NO")

for _ in range(int(input())):
    a = input()
    b = input()
    c = input()
    l = len(a)
    flag = 0
    for i in range(l):
        if c[i]==a[i] or c[i]==b[i]:
            continue
        else:
            flag = 1
            break
    if flag:
        print("NO")
    else:
        print("YES")