A. Троллейбусы

В городе есть N перекрёстков с номерами от 1 до N, некоторые из которых соединены улицами.

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

Каждый троллейбус начинает своё движение с начальной остановки и может ехать по маршруту в любом направлении. Например, если маршрут троллейбуса - 1 2 3 4, то он может ехать как 1 2 3 4 1 2 3 4 1 2... (положительное направление), так и 1 4 3 2 1 4 3... (отрицательное направление).

Требуется написать программу, ориентирующую маршруты в соответствии с условиями задачи.

Входные данные
В первой строке входного файла записаны числа N и K (1≤N,K≤100).
Далее следуют K строк. В i+1 строке файла находится описание i-го маршрута:
<описание i-ого маршрута> ::= <количество ki перекрёстков маршрута> <первый перекресток маршрута> <время проезда от 1 перекрёстка маршрута до 2-го>...<ki перекресток маршрута> <время проезда от ki перекрёстка маршрута до 1-го>.

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

Примечания
  • ki≥2 для любого i.
  • Все времена - положительные целые числа, не превосходящие 10000.
  • Время проезда троллейбуса по улице не зависит от направления движения.
  • Маршруты не самопересекающиеся.
  • Будут оцениваться частичные решение для случая равенства всех времён.

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
4
2
3 1 10 2 10 4 10
3 3 10 4 10 2 10
  
YES
+-
  

B. Авиалинии (30 баллов)

В стране есть N городов, никакие два из которых не лежат на одном меридиане. Местная авиакомпания решила провести сеть авиалиний таким образом, чтобы из любого города можно было долететь во все города, лежащие на востоке от него, не более, чем с одной пересадкой. Однако, главный менеджер требует, чтобы:

Вам требуется написать программу, которая построит сеть, удовлетворяющую условиям задачи.

Входные данные
Во входном файле задано число N (1≤N≤500).

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

Примечание
Количество баллов, полученных вами за тест, будет вычисляться, исходя из сравнения с ответами остальных участников и с наилучшим.

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
4  
  
4
1 2 2 3 3 4 1 4
  

C. Автострады (40 баллов)

В некоторой стране есть N городов. Требуется провести кольцевые автострады так, чтобы выполнялись следующие условия:

Входные данные
В первой строке входного файла задано число N (1≤N≤100).
В следующих N строках содержится матрица A[i,j] размером NxN, где A[i,j] = стоимость прокладки дороги из города номер i в город номер j, причём выполняются следующие условия:

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

Пример входного и выходного файлов
INPUT.TXT OUTPUT.TXT
5
 0  4  7  1 10
 5  0  1 72  1
 7  2  0 15  3
 1  2 16  0 22
 9  4  1 21  0      
  
6
2
1 4
2 5 3