B. Два множества
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

У Little X есть n различных целых чисел: p1, p2, ..., pn. Он хочет так разделить все числа на два множества, A и B, чтобы выполнялись условия:

  • Если число x принадлежит множеству A, то число a - x также должно принадлежать множеству A.
  • Если число x принадлежит множеству B, то число b - x также должно принадлежать множеству B.

Помогите Little X разделить числа на два множества или определите, что это невозможно.

Входные данные

В первой строке записано три целых числа через пробел n, a, b (1 ≤ n ≤ 105; 1 ≤ a, b ≤ 109). В следующей строке записано n различных целых чисел через пробел p1, p2, ..., pn (1 ≤ pi ≤ 109).

Выходные данные

Если способ разделения чисел на два множества существует, то выведите "YES" в первой строке. Затем выведите n целых чисел: b1, b2, ..., bn (bi равняется либо 0, либо 1), описывающих разделение. Если bi равняется 0, то pi принадлежит множеству A, в противном случае оно принадлежит множеству B.

Если это невозможно, выведите "NO" (без кавычек).

Примеры
Входные данные
4 5 9
2 3 4 5
Выходные данные
YES
0 0 1 1
Входные данные
3 3 4
1 2 4
Выходные данные
NO
Примечание

Допустимо следующее разбиение: все числа содержатся в одном множестве, а второе множество пустое.