Свободное перемещение

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

Эйден Колдуолл обладает довольно большим количеством навыков и способностей, среди которых прекрасное владение паркуром. Город Вилледор, в котором Эйден сейчас находится, состоит из nn локаций и mm двухсторонних переходов для паркура между ними; ii-й переход соединяет локации под номерами u_iu\_i и v_iv\_i.

Чтобы иметь возможность быстро перемещаться между локациями, Эйден может установить на каждом переходе специальное снаряжение, которое позволит ему перемещаться в одну сторону заметно быстрее, чем в другую. Эйден считает удобной любую тройку локаций aa, bb и cc такую, что из aa в bb доступно быстрое перемещение и из bb в cc доступно быстрое перемещение.

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

입력

В первой строке входных данных дано два целых числа nn и mm --- количество локаций и переходов между ними (2n3105;1m31052 \leqslant n \leqslant 3 \cdot 10^5; 1 \leqslant m \leqslant 3 \cdot 10^5).

В ii-й из следующих mm строк через пробел даны два целых числа u_iu\_i и v_iv\_i --- номера локаций, между которыми пролегает ii-й переход (1u_i,v_in1 \leqslant u\_i, v\_i \leqslant n; u_iv_iu\_i \neq v\_i). Гарантируется, что никакие два перехода не соединяют одни и те же две локации.

출력

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

В следующих mm строках выведите описание направлений для быстрого перемещения. В ii-й строке выведите через пробел два целых числа x_ix\_i и y_iy\_i (1x_i,y_in1 \leqslant x\_i, y\_i \leqslant n), обозначающие, что перемещение между локациями x_ix\_i и y_iy\_i будет быстрым по направлению от x_ix\_i к y_iy\_i, а не наоборот.

Порядок вывода переходов может быть произвольным и не обязан совпадать с порядком переходов во вводе.

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

힌트

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

Во втором примере 66 удобных троек --- это (123)(1 \to 2 \to 3), (231)(2 \to 3 \to 1), (312)(3 \to 1 \to 2), (143)(1 \to 4 \to 3), (431)(4 \to 3 \to 1) и (314)(3 \to 1 \to 4).