시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB73342.857%

문제

Мистер Скрудж --- председатель местного парламента. На повестке дня в парламенте выбор президента. Конечно, президентом нужно выбрать одного из парламентариев. В парламенте есть две фракции --- Даки и Маусы. Членам обеих партий запрещено голосовать за политиков, которые состоят в той же партии, что и голосующий. Председатель парламента, то есть, Скрудж, не имеет права голоса, и не может быть избран президентом.

В процессе выборов каждый из парламентариев проголосовал ровно за одного парламентария, состоящего в другой партии. После этого список, в котором указано, сколько голосов получил каждый из политиков, был передан Скруджу.

Получив список, Скрудж понял, что он не знает, в какой партии состоит какой кандидат, а это важно. Помогите ему составить какое-либо распределение политиков по партиям, удовлетворяющее всем условиям, или выясните, что список, который получил Скрудж, некорректен.

입력

В первой строке входного файла дано целое число $n$ ($2 \le n \le 100\,000$) --- число парламентариев.

В следующей строке дано $n$ целых чисел $a_i$ ($0 \le a_i < n$, сумма всех $a_i$ равна $n$) --- число голосов, которые получил $i$-й парламентарий.

출력

В первой строке выходного файла выведите <<YES>>, если можно таким образом назначить каждому парламентарию его партию, и выбрать, за кого он проголосовал, чтобы список, полученный Скруджем, оказался корректен, и <<NO>> в противном случае.

Если искомое назначение существует, то во второй строке выведите $n$ целых чисел --- 1, если $i$-й политик состоит в партии Даков, или 2, если он состоит в партии Маусов.

예제 입력 1

5
1 2 0 2 0

예제 출력 1

YES
1 1 2 2 2