Блог Аріадни сповнений смачними рецептами та корисними порадами щодо здорового і збалансованого способу життя. Не дивно, що він приваблює велику кількість читачів. Ця аудиторія тепер стабільна, і Аріадна вважає, що було б корисно, якби вони більше взаємодіяли і створили міцніше співтовариство, яке не обмежувалося б лише блогом.
Аріадна знає, що деякі з читачів вже є друзями або знайомими, і тому у них є адреси електронної пошти один одного. Вона вважає, що хорошим початком для розвитку спільноти було б, щоб у кожного був адрес електронної пошти кожного, щоб кожен міг зв'язатися з усією групою. Оскільки вона знає, що читачам її блогу також подобається робити речі "децентралізованим" способом, вона розробляє наступний протокол, який почне діяти з дня :
Кожного дня о ранку, кожен відправляє поточний список контактів зі своєї адресної книги всім своїм контактам з адресної книги.
Кожного дня о вечора, кожен оновлює свою адресну книгу, додаючи всі нові отримані адреси електронної пошти.
Якщо у людини немає потреби вносити зміни о вечора, то процес вважається завершеним для цієї людини, і їй більше не потрібно відправляти електронні листи в наступні дні.
Ви досвідчений хакер і Вам вдалося отримати доступ до всіх адресних книг читачів блогу. Ви хочете здивувати і вразити Аріадну, повідомивши її про те, чи призведе запропонований нею процес до того, що кожен отримає адресу кожного іншого. Більш того, якщо успіх буде досягнутий, то Ви хочете оцінити скільки днів це займе. Більш точно, якщо процес увінчається успіхом, то Ви можете повідомити їй:
кількість днів (включаючи перший), що минули до останнього оновлення, або
кількість днів (включаючи перший), що минули до завершення процесу з усіх боків. Зверніть увагу, що згідно з визначенням Аріадни воно дорівнює e + 1.
Перший рядок містить два цілих числа n~(2 \le n \le 10^5) і m~(1 \le m \le 10^5), що відповідають кількості читачів і кількості пар читачів, які спочатку мають адреси електронної пошти один одного. Читачі пронумеровані від до .
Кожен з наступних рядків містить два цілих числа і , що означають, що читачі і спочатку мають адреси електронної пошти один одного. Зверніть увагу, що у читача є адреса читача , і у читача є адреса читача .
Виведіть одне ціле число, рівне:
якщо цей процес не призведе до того, що всі врешті-решт отримають адреси електронної пошти всіх інших, або
розрахована необхідна кількість днів в іншому випадку. Зверніть увагу, що це число може дорівнювати .
Пояснення до прикладу . Процес відбувається наступним чином:
У день о ранку:
Читач надсилає адресу читача читачу .
Читач надсилає адреси читачів та читачам та .
Читач надсилає адреси читачів та читачам та .
Читач надсилає адресу читача читачу .
У день після оновлення о вечора:
Адресна книга читача була оновлена і містить адреси читачів та .
Адресна книга читача була оновлена і містить адреси читачів та .
Адресна книга читача була оновлена і містить адреси читачів та .
Адресна книга читача була оновлена і містить адреси читачів та .
У день d + 1 о ранку:
Читач надсилає адреси читачів та читачам та .
Читач надсилає адреси читачів та читачам та .
Читач надсилає адреси читачів та читачам та .
Читач надсилає адреси читачів та читачам та .
У день d + 1 після оновлення о вечора:
Адресна книга читача була оновлена і містить адреси читачів та .
Процес завершився для читача , оскільки оновлення не було.
Процес завершився для читача , оскільки оновлення не було.
Адресна книга читача була оновлена і містить адреси читачів та .
У день d + 2 о ранку:
Читач надсилає адреси читачів та читачам та .
Читач надсилає адреси читачів та читачам та .
У день d + 2 після оновлення о вечора:
Процес завершився для читача , оскільки оновлення не було.
Процес завершився для читача , оскільки оновлення не було.
Останнє оновлення відбувається в день d + 1, через дні, що минули. Процес завершився для всіх у день d + 2, через дні, що минули. Вивід прикладу містить перше значення . Виведення другого значення є також правильною альтернативою.
Приклад 1
Приклад 2
Ми припускаємо, що база читачів стабільна, тобто жоден читач не йде і жоден додатковий читач не приєднується протягом всього процесу.
Ми припускаємо, що кожен знає адресу своєї електронної пошти; отримання власної адреси просто ігнорується.
Вам не обов'язково бути "послідовними" у відповідях на кілька тестів. Це означає, що Ви можете вивести значення для одного тесту і e + 1 для іншого.