Грабуй і Втікай#6188

Грабуй і Втікай

1 секунда
64 мегабайти
Середня

Хакер Кирило успішно виконав завдання, яке керівництво "Plunder Flee Inc." доручило йому минулого року, і тепер його перевели до центрального офісу. Перед ним стоїть нове завдання — покращити комп'ютерну мережу в центральному офісі. Мережа складається з робочих станцій, з'єднаних n-1 мережевими кабелями; кожна пара станцій має не більше одного з'єднання. Інформація передається між станціями, поки не досягне адресата.

Наразі мережа налаштована так, що між будь-якими двома станціями існує лише один маршрут. Це рішення є економічним, але має серйозний недолік: будь-яка несправність кабелю робить мережу непрацездатною.

Керівництво попросило Кирила покращити мережу, використовуючи якомога менше додаткових кабелів, щоб мережа залишалася працездатною у випадку виходу з ладу одного кабелю.

Напишіть програму, яка, маючи структуру мережі, визначить мінімальну кількість додаткових кабелів, необхідних для покращення мережі, як описано вище.

Вхідні дані

Перша строка вхідного файлу містить ціле число (2 \leq n \leq 1000), кількість робочих станцій у мережі. Наступні n-1 рядків описують комунікаційні зв'язки. Вони містять розділені пробілом номери станцій, з'єднаних кабелем : цілі числа a_i та b_i (1 \leq a_i, b_i \leq n). Робочі станції ідентифікуються натуральними числами від до .

Вихідні дані

Перша строка вихідного файлу повинна містити ціле число , кількість додаткових кабелів. Потім повинні слідувати рядків, кожен з яких складається з пари цілих чисел, розділених пробілом, що позначають номери новоз'єднаних станцій.

Приклади

Приклад 1

Loading
Loading