Задана ориентированная сеть G. Для каждого ребра кроме его пропускной способности c_i, указана еще и нижнее ограничение на поток по ребру l_i. Это обозначает, что поток по ребру должен удовлетворять неравенству l_{i }≤ f_i ≤ c_i.
Циркуляцией в сети называется любой поток величины 0. То есть для циркуляции верно, что в любую вершину сколько единиц потока втекает, столько и вытекает из нее (в случае потока это не верно для истока и стока сети).
Ваша задача найти произвольную циркуляцию в заданной сети.
В первой строке записана пара целых чисел (1 ≤ n ≤ 200, 0 ≤ m ≤ 400), где n — количество вершин в сети, а m— количество ребер. Далее в m строках перечислены ребра в формате from_i, to_i, l_i, c_i, где from_i - это индекс стартовой вершины ребра, to_i - это индекс конечной вершины ребра, l_i — нижняя граница величины потока по ребру, а c_i — верхняя граница (1 ≤ from_i, to_i ≤ n, 0 ≤ l_i ≤ c_i ≤ 10^5). Все числа — целые. В графе отсутствуют кратные ребра и петли.
Если в сети есть ребро из a в b, то в сети отсутствует ребро из b в a (то есть встречных ребер нет).
Если решения не существует, то выведите NO. В противном случае выведите YES. Далее в случае положительного ответа выведите m строк. m-я строка должна содержать количество потока, протекающего по i-ой дуге в искомой циркуляции.