As you know, Vova has recently become a new shaman in the city of Ultima Thule. So, he has received the shaman knowledge about the correct bracket sequences. The shamans of Ultima Thule have been using lots of different types of brackets since prehistoric times. A bracket type is a positive integer. The shamans define a correct bracket sequence as follows:
 -  An empty sequence is a correct bracket sequence. -  If {*a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*l*</sub>} and {*b*<sub class="lower-index">1</sub>, *b*<sub class="lower-index">2</sub>, ..., *b*<sub class="lower-index">*k*</sub>} are correct bracket sequences, then sequence {*a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*l*</sub>, *b*<sub class="lower-index">1</sub>, *b*<sub class="lower-index">2</sub>, ..., *b*<sub class="lower-index">*k*</sub>} (their concatenation) also is a correct bracket sequence. -  If {*a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*l*</sub>} — is a correct bracket sequence, then sequence <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/23d6a879e6e73067450bcb6f00ab4d78bc7731a6.png" style="max-width: 100.0%;max-height: 100.0%;"/> also is a correct bracket sequence, where *v* (*v* &gt; 0) is an integer. 
For example, sequences {1, 1,  - 1, 2,  - 2,  - 1} and {3,  - 3} are correct bracket sequences, and {2,  - 3} is not.

Moreover, after Vova became a shaman, he learned the most important correct bracket sequence {*x*<sub class="lower-index">1</sub>, *x*<sub class="lower-index">2</sub>, ..., *x*<sub class="lower-index">*n*</sub>}, consisting of *n* integers. As sequence *x* is the most important, Vova decided to encrypt it just in case.

Encrypting consists of two sequences. The first sequence {*p*<sub class="lower-index">1</sub>, *p*<sub class="lower-index">2</sub>, ..., *p*<sub class="lower-index">*n*</sub>} contains types of brackets, that is, *p*<sub class="lower-index">*i*</sub> = |*x*<sub class="lower-index">*i*</sub>| (1 ≤ *i* ≤ *n*). The second sequence {*q*<sub class="lower-index">1</sub>, *q*<sub class="lower-index">2</sub>, ..., *q*<sub class="lower-index">*t*</sub>} contains *t* integers — some positions (possibly, not all of them), which had negative numbers in sequence {*x*<sub class="lower-index">1</sub>, *x*<sub class="lower-index">2</sub>, ..., *x*<sub class="lower-index">*n*</sub>}.

Unfortunately, Vova forgot the main sequence. But he was lucky enough to keep the encryption: sequences {*p*<sub class="lower-index">1</sub>, *p*<sub class="lower-index">2</sub>, ..., *p*<sub class="lower-index">*n*</sub>} and {*q*<sub class="lower-index">1</sub>, *q*<sub class="lower-index">2</sub>, ..., *q*<sub class="lower-index">*t*</sub>}. Help Vova restore sequence *x* by the encryption. If there are multiple sequences that correspond to the encryption, restore any of them. If there are no such sequences, you should tell so.
The first line of the input contains integer *n* (1 ≤ *n* ≤ 10<sup class="upper-index">6</sup>). The second line contains *n* integers: *p*<sub class="lower-index">1</sub>, *p*<sub class="lower-index">2</sub>, ..., *p*<sub class="lower-index">*n*</sub> (1 ≤ *p*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>).

The third line contains integer *t* (0 ≤ *t* ≤ *n*), followed by *t* distinct integers *q*<sub class="lower-index">1</sub>, *q*<sub class="lower-index">2</sub>, ..., *q*<sub class="lower-index">*t*</sub> (1 ≤ *q*<sub class="lower-index">*i*</sub> ≤ *n*).

The numbers in each line are separated by spaces.
import sys

n = int(sys.stdin.readline())
all_brackets_by_abs = [int(i) for i in sys.stdin.readline().split()]
closing_bracket_positions = [int(i) for i in sys.stdin.readline().split()]

closing_bracket_positions.pop(0)
all_brackets_by_abs = all_brackets_by_abs[::-1]

opening_bracket_positions = closing_bracket_positions.copy()
for i in range(len(closing_bracket_positions)):
    opening_bracket_positions[i] = n - closing_bracket_positions[i] + 1

sign_for_every_bracket = [-1] * n
for pos in opening_bracket_positions:
    sign_for_every_bracket[pos - 1] = 1

stack = []
not_answer = []
for i in range(len(all_brackets_by_abs)):
    bracket = all_brackets_by_abs[i]
    if not stack or stack[-1] != bracket:
        stack.append(bracket)
        not_answer.append(bracket)
    elif stack[-1] == bracket:
        if sign_for_every_bracket[i] == 1:
            stack.append(bracket)
            not_answer.append(bracket)
        else:
            stack.pop()
            not_answer.append(-bracket)

answer = [0] * n
if stack:
    sys.stdout.write("NO")
else:
    # result = ""
    sys.stdout.write("YES\n")
    for i in range(n):
        answer[i] = not_answer[n - i - 1] * (-1)
    # for element in answer:
    #     result += f"{element} "
    # sys.stdout.write(result)
    print(*answer)
