E. Оптимальный поток
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рассмотрим сеть, состоящую из n вершин, пронумерованных от 1 до n. Некоторые пары вершин соединены ребрами. Пара вершин может быть соединена несколькими ребрами, тем не менее, не существует ребра, соединяющего какую-то вершину саму с собой.

Каждое ребро имеет бесконечную пропускную способность (в обоих направлениях), однако в один момент времени ребро может пропускать поток только в одном из направлений. Стоимость пропускания потока по ребру пропорциональна квадрату пропускаемого потока. Точнее, для каждого ребра задана характеристика (вес), стоимость пропускания x потока по ребру с весом w равна w·x2.

Известно, что сеть связна (между любой парой вершин есть путь по ребрам). Более того, сеть устроена таким образом, что при удалении любой вершины, она останется связной.

Вам нужно пропустить k (k > 0) потока из вершины 1 в вершину n. Другими словами, вы хотите для каждого ребра выбрать величину (не обязательно целочисленную) и направление, проходящего по этому ребру потока, так, чтобы для вершины 1 значение [сумма всех входящих потоков минус сумма всех выходящих потоков] равнялось  - k, для вершины n это значение равнялась k, а для всех остальных вершин оно равнялось 0.

Желая минимизировать стоимость пропускания k потока, вы нарисовали диаграмму сети и дали задание одному из подчиненных. Недавно, последний сказал, что он нашел оптимальное решение задачи и нарисовал его, но, к сожалению, пролил кофе на рисунок. Поэтому некоторые данные утрачены (вполне возможно, даже части изначальной диаграммы и значение k).

Имея все сохранившиеся данные, вам нужно определить, могло ли решение подчиненного быть оптимальным. Другими словами, определите, существуют ли корректная сеть, значение k (оно должно быть положительным) и оптимальное решение, которые не противоречат никакой сохранившейся информации. Дополнительно, если это возможно, определите эффективность решения подчиненного. Эффективность решения равна суммарной стоимости деленой на k.

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

Входные данные содержат два целых числа n и m (2 ≤ n ≤ 200000; 0 ≤ m ≤ 200000), количество вершин и ребер в сети. В каждой из m следующих строк записаны четыре целых числа: f, t, w, b (1 ≤ f ≤ n; 1 ≤ t ≤ nf ≠ t; 1 ≤ w ≤ 100; 0 ≤ b ≤ 100). Числа обозначают, что в оптимальном решении подчиненного поток величины b проходил по ребру из f в t, вес этого ребра был равен w.

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

Если решение подчиненного точно не является оптимальным, выведите строку «BAD x», где x — это номер первого ребра, которое противоречит оптимальности решения. Если решение подчиненного может быть оптимальным, то выведите эффективность этого решения, округленную до ближайшего целого числа, если ее можно определить. Если определить эффективность нельзя выведите строку "UNKNOWN".

Примеры
Входные данные
4 5
1 2 1 2
1 3 4 1
2 3 2 1
2 4 4 1
3 4 1 2
Выходные данные
6
Входные данные
5 5
2 3 1 1
3 4 1 1
4 2 1 1
1 5 1 1
1 5 100 100
Выходные данные
BAD 3
Входные данные
6 4
1 3 31 41
1 5 59 26
2 6 53 58
4 6 97 93
Выходные данные
UNKNOWN
Входные данные
7 5
1 7 2 1
2 3 1 1
4 5 1 0
6 1 10 0
1 3 1 1
Выходные данные
BAD 4
Примечание

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