Package for this problem was not updated by the problem writer or Codeforces administration after we’ve upgraded the judging servers. To adjust the time limit constraint, solution execution time will be multiplied by 2. For example, if your solution works for 400 ms on judging servers, then value 800 ms will be displayed and used to determine the verdict.

Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

C. Main Sequence

time limit per test

2 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputAs 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*_{1},*a*_{2}, ...,*a*_{l}} and {*b*_{1},*b*_{2}, ...,*b*_{k}} are correct bracket sequences, then sequence {*a*_{1},*a*_{2}, ...,*a*_{l},*b*_{1},*b*_{2}, ...,*b*_{k}} (their concatenation) also is a correct bracket sequence. - If {
*a*_{1},*a*_{2}, ...,*a*_{l}} — is a correct bracket sequence, then sequence also is a correct bracket sequence, where*v*(*v*> 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*_{1}, *x*_{2}, ..., *x*_{n}}, 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*_{1}, *p*_{2}, ..., *p*_{n}} contains types of brackets, that is, *p*_{i} = |*x*_{i}| (1 ≤ *i* ≤ *n*). The second sequence {*q*_{1}, *q*_{2}, ..., *q*_{t}} contains *t* integers — some positions (possibly, not all of them), which had negative numbers in sequence {*x*_{1}, *x*_{2}, ..., *x*_{n}}.

Unfortunately, Vova forgot the main sequence. But he was lucky enough to keep the encryption: sequences {*p*_{1}, *p*_{2}, ..., *p*_{n}} and {*q*_{1}, *q*_{2}, ..., *q*_{t}}. 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.

Input

The first line of the input contains integer *n* (1 ≤ *n* ≤ 10^{6}). The second line contains *n* integers: *p*_{1}, *p*_{2}, ..., *p*_{n} (1 ≤ *p*_{i} ≤ 10^{9}).

The third line contains integer *t* (0 ≤ *t* ≤ *n*), followed by *t* distinct integers *q*_{1}, *q*_{2}, ..., *q*_{t} (1 ≤ *q*_{i} ≤ *n*).

The numbers in each line are separated by spaces.

Output

Print a single string "NO" (without the quotes) if Vova is mistaken and a suitable sequence {*x*_{1}, *x*_{2}, ..., *x*_{n}} doesn't exist.

Otherwise, in the first line print "YES" (without the quotes) and in the second line print *n* integers *x*_{1}, *x*_{2}, ..., *x*_{n} (|*x*_{i}| = *p*_{i}; *x*_{qj} < 0). If there are multiple sequences that correspond to the encrypting, you are allowed to print any of them.

Examples

Input

2

1 1

0

Output

YES

1 -1

Input

4

1 1 1 1

1 3

Output

YES

1 1 -1 -1

Input

3

1 1 1

0

Output

NO

Input

4

1 2 2 1

2 3 4

Output

YES

1 2 -2 -1

Codeforces (c) Copyright 2010-2019 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Oct/14/2019 00:33:42 (f3).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|