A. Планарность

Задан неориентированный граф и гамильтонов цикл в нём. Требутся расположить граф на плоскости без самопересечений таким образом, чтобы рёбра изображались отрезками и дугами окружностей.

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

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

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
3 3
1 2
2 3
1 3
1 2 3
  
Yes
0 0 1 0 2 0
0.5 0
1.5 0
1 11
  

B. Округлая планарность

Задан неориентированный граф. Потребуем, чтобы все его вершины располагались в точках некоторой окружности, а ребра соответствовали хордам окружности. Нужно проверить - возможно ли расположить вершины таким образом, чтобы ребра не пересекались.

Входные данные
В первой строке входного файла содержится число вершин графа N (1≤N≤50) и число ребер M. В последующих M строках заданы ребра, каждое номерами двух вершин.

Выходные данные
В первой строке выходного файла должно находиться слово Yes, если граф можно расположить заданным образом, или No, если нет.
Если граф можно расположить, то во второй строке выдать последовательность номеров вершин в порядке обхода по окружности.

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
3 3
1 2
2 3
1 3
  
Yes
1 2 3
  
С. Евклидова планарность

Задан неориентированный граф и веса всех его ребер. Нужно расположить вершины графа на плоскости так, чтобы веса ребер совпадали с расстояниями между соотвествующими вершинами.

Веса всех ребер положительные вещественные числа, большие 1 и меньшие 1000.

Входные данные
В первой строке входного файла содержится число вершин графа N (1≤N≤30) и число ребер M. В последующих M строках заданы ребра, каждое номерами вершин и весом.

Выходные данные
В N строках выдать координаты вершин на плоскости.

Примечание
  • Гарантируется, что искомое расположение существует.
  • Рёбра графа могут пересекаться.

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
3 3
1 2 0.50000000E01
2 3 0.50000000E01
1 3 0.60000000E01
  
0.00000000E00 0.00000000E00
0.30000000E01 0.40000000E01
0.60000000E01 0.00000000E00