Problem: Ashish has n elements arranged in a line. 

These elements are represented by two integers a_i — the value of the element and b_i — the type of the element (there are only two possible types: 0 and 1). He wants to sort the elements in non-decreasing values of a_i.

He can perform the following operation any number of times: 

  * Select any two elements i and j such that b_i ≠ b_j and swap them. That is, he can only swap two elements of different types in one move. 



Tell him if he can sort the elements in non-decreasing values of a_i after performing any number of operations.

Input

The first line contains one integer t (1 ≤ t ≤ 100) — the number of test cases. The description of the test cases follows.

The first line of each test case contains one integer n (1 ≤ n ≤ 500) — the size of the arrays.

The second line contains n integers a_i (1 ≤ a_i ≤ 10^5) — the value of the i-th element.

The third line containts n integers b_i (b_i ∈ \{0, 1\}) — the type of the i-th element.

Output

For each test case, print "Yes" or "No" (without quotes) depending on whether it is possible to sort elements in non-decreasing order of their value.

You may print each letter in any case (upper or lower).

Example

Input


5
4
10 20 20 30
0 1 0 1
3
3 1 2
0 1 1
4
2 2 4 8
1 1 1 1
3
5 15 4
0 0 0
4
20 10 100 50
1 0 0 1


Output


Yes
Yes
Yes
No
Yes

Note

For the first case: The elements are already in sorted order.

For the second case: Ashish may first swap elements at positions 1 and 2, then swap elements at positions 2 and 3.

For the third case: The elements are already in sorted order.

For the fourth case: No swap operations may be performed as there is no pair of elements i and j such that b_i ≠ b_j. The elements cannot be sorted.

For the fifth case: Ashish may swap elements at positions 3 and 4, then elements at positions 1 and 2.

Solution (in PYTHON3):

Solution:
#
#    ------------------------------------------------
#         Fast Tests Competitive Python Template
#    ------------------------------------------------
#    Author: prophet "神"
#    Version: 1V3uJkowFG
#    License: GNU Affero General Public License v3.0
#    Location: 218.92.0.135
#    ------------------------------------------------
#

testing_mode = True

import sys, traceback

test_data = ""
final_output = ""

def input(input_format = 0, multi = 0):

    if multi > 0: return [input(input_format) for x in range(multi)]
    else:
        next_line = next(test_data, None).strip() if test_data else sys.stdin.readline()

        if input_format == 0: formatted_input = [next_line]
        elif input_format == 1: formatted_input = list(map(int, next_line.split()))
        elif input_format == 2: formatted_input = list(map(float, next_line.split()))
        elif input_format == 3: formatted_input = next_line.split()
        elif input_format == 4: formatted_input = (lambda x: [x[0], list(map(int, x[1:]))])(next_line.split())
        elif input_format == 5: formatted_input = (lambda x: [x[0], list(map(float, x[1:]))])(next_line.split())
        else: formatted_input = [next_line]

        return formatted_input

def log(*args):
    if testing_mode: print(*args)

def out(output_line, output_format = 0, newline = True):

        global final_output

        formatted_output = ""

        if output_format == 0: formatted_output = str(output_line)
        elif output_format == 1: formatted_output = " ".join(map(str, output_line))
        elif output_format == 1: formatted_output = "\n".join(map(str, output_line))

        if testing_mode: final_output += formatted_output + "\n" * newline
        else: print(formatted_output, end = "\n" if newline else "")

test_inputs = [
# Input 1
"""
5
4
10 20 20 30
0 1 0 1
3
3 1 2
0 1 1
4
2 2 4 8
1 1 1 1
3
5 15 4
0 0 0
4
20 10 100 50
1 0 0 1

""",
# Input 2
"""
1
1
3 2
1 1
""",
# Input 3
"""
$$$
""",
# Input 4
"""
$$$
"""
]

test_outputs = [
# Output 1
"""
Yes
Yes
Yes
No
Yes

""",
# Output 2
"""
$$$
""",
# Output 3
"""
$$$
""",
# Output 4
"""
$$$
"""
]

#
#   >>>>>>>>>>>>>>> START OF SOLUTION <<<<<<<<<<<<<<
#

def solve():

    for z in range(input(1)[0]):
        n = input(1)[0]
        # a = zip(input(1), input(1))
        a = input(1)
        b = input(1)

        e1 = False
        e2 = False

        for i in b:
            if i == 1:
                e1 = True
            elif i == 0:
                e2 = True

        if (e1 and e2) or (a == sorted(a)):
            out("Yes")
        else:
            out("No")

    return

#
#   >>>>>>>>>>>>>>>> END OF SOLUTION <<<<<<<<<<<<<<<
#

def run_all(overwrite_testing = False):

    global testing_mode, final_output, test_data

    testing_mode = overwrite_testing and testing_mode

    if testing_mode:

        tests_failed = 0

        for test_number, (test_in, test_out) in enumerate(zip(test_inputs, test_outputs)):

            final_output = ""

            if test_in.lstrip()[:3] == "$$$": continue

            test_data = iter([i for i in test_in.split("\n") if i])

            print(f"Test Case #{test_number + 1}:")
            print("<" * 20)

            fail = False
            verdict = "\033[92m\033[1mPASS\033[0m"

            try:
                solve()
                final = final_output.rstrip("\n")
                raw_out = iter(map(str, final.split("\n"))) if final else iter(())
            except Exception:
                raw_out = ""
                fail = True
                print("\033[95m")
                traceback.print_exc()
                print("\033[0m")

            if raw_out:
                if test_out.lstrip()[:3] == "$$$":
                    verdict = "\033[94m\033[1mSKIP\033[0m"
                    print("\033[94m" + '\n'.join(list(raw_out)) + "\033[0m")
                else:
                    for line_out in [i for i in test_out.split("\n") if i]:
                        line_raw = next(raw_out, "% None %")
                        if line_raw == line_out.strip():
                            print(f"\033[92m{line_raw}\033[0m")
                        else:
                            print(f"\033[91m{line_raw}\033[0m")
                            fail = True

                    line_raw = next(raw_out, None)
                    while line_raw:
                        print(f"\033[91m{line_raw}\033[0m")
                        line_raw = next(raw_out, None)
                        fail = True

            print(">" * 20)

            if fail:
                verdict = "\033[91m\033[1mFAIL\033[0m"
                tests_failed += 1

            print(verdict + "\n")

        if tests_failed: print(f"\033[91m\033[1m{tests_failed} TEST{'S' if tests_failed > 1 else ''} FAILED!\033[0m")
        else: print(f"\033[92m\033[1mALL TESTS PASSED!\033[0m")

    else:

        test_data = False
        solve()

run_all(False)