Маршрути для заряджання
Корова Бессі прагне залишатися у формі, тому вона шукає варіанти цікавих маршрутів для ранкової пробіжки по фермі. Ферма складається з n полів, з'єднаних m двонаправленими стежками. Корови звикли використовувати підмножину з n - 1 стежок, які вони називають "стандартними". Завдяки цим стандартним стежкам можна подорожувати між будь-якими двома полями.
Щоб зробити свій ранковий маршрут більш захопливим, Бессі вирішила включити нестандартні стежки. Однак вона не планує використовувати їх надто багато. Після довгих роздумів корова визначила, що цікавий маршрут - це простий цикл (який повертається до початкової точки і включає кожне поле лише один раз) із точно двома нестандартними стежками.
Ваше завдання - допомогти Бессі визначити, скільки таких "хороших" маршрутів можна знайти на фермі. Вважайте, що два маршрути є однаковими, якщо вони включають одні й ті ж стежки.
Вхідні дані
Перша строка містить два числа: n (1 ≤ n ≤ 2 * 10^5
) та m (1 ≤ m ≤ 2 * 10^5
). У кожній з наступних m строчок наведені два цілі числа a[i]
і b[i]
, які позначають кінцеві точки стежки. Перші n - 1 рядків описують стандартні стежки.
Вихідні дані
Ви маєте вивести загальну кількість можливих хороших маршрутів для Бессі.