A. Перестановка

Отличница Маша выписала на доске перестановку чисел от 1 до N. Но хулиган Вася изменил её, проделав над всеми числами одновременно следующую операцию: если в i-ой позиции стояло число j, а в j-й - число k, то во i-ую позицию он записал число k. Помогите Маше восстановить исходную перестановку.

Входные данные
В первой строке записано число N (1≤N≤1000).
Во второй строке записана перестановка чисел от 1 до N, получившаяся после действий Васи.

Выходные данные
Если исходную перестановку восстановить невозможно, то в выходной файл записать слово 'NO'.
Иначе в первую строку записать слово 'YES', а во вторую - искомую перестановку.

Пример входного и выходного файлов
GAME.IN GAME.OUT
4
2 3 1  
  
YES
1 2 3 4
  

B. Ладьи

Дана шахматная доска NxN, на которой расставлены ладьи. Требуется раскрасить их в наименьшее количество цветов так, чтобы на одной горизонтали и вертикали не стояло одноцветных ладьей.

Входные данные
В первой строке входного файла записано число N (1≤N≤100).
В последующих N строках записана шахматная доска (матрица NxN), где пустое поле обозначается символом '.', а поле с ладьёй - символом '*' (пробелов между символами в одной строке нет).

Выходные данные
В первой строке выходного файла вывести M - минимальное количество цветов.
В последующих N строках вывести шахматную доску, в которой пустое поле обозначается числом 0, а ладья, покрашенная в цвет номер K, - числом K.

Пример входного и выходного файлов
INPUT.TXT ROOK.TXT
2
*.
**
  
2
2 0
1 2
  

С. Внутренности

Дана замкнутая ломаная, звенья которой не имеют общих отрезков. Назовём точку на плоскости внутренней к ломаной, если существует луч с началом в этой точке, пересекающий звенья ломаной в нёчетном числе точек. Назовём область на плоскости внутренней к данной ломаной, если все её точки внутренние, а остальные точки плоскости не являются внутренними.

Требуется определить площадь внутренней к данной ломаной области.

Входные данные
В первой строке входного файла записано число N (3≤N≤100) - количество вершин ломаной.
В последующих N строках - координаты вершин ломаной.

Выходные данные
В выходной файл вывести площадь внутренней к ломаной области.

Пример входного и выходного файлов
INSIDE.OUT OUTSIDE.IN
8
0.0 0.0
0.0 6.0
2.0 6.0
2.0 2.0
-2.0 2.0
-2.0 4.0
4.0 4.0
4.0 0.0
  
20