Слабка k-зв`язність
Ані, як майбутній чемпіонці світу з програмування, доручили дуже відповідальне завдання. Уряд Н-ської області доручає їй план будівництва доріг між містами. За планом усі дороги односторонні, але між двома містами може бути більше однієї дороги, можливо, у різних напрямках. Ані необхідно обчислити таке мінімальне k, що звданий їй план є слабо k-зв'язним.
Уряд називає план слабо k-зв'язним, якщо виконано наступну умову: для будь-яких двох різних міст можна проїхати від одного до іншого, порушуючи правила руху не більше k разів. Порушення правил - це проїзд по існуючій дорозі у зворотному напрямку. Гарантується, що між будь-якими двома містами можна проїхати, можливо, кілька разів порушивши правила.
Вхідні дані
У першому рядку вхідного файлу дано два числа 2 ≤ n ≤ 300 и 1 ≤ m ≤ 10^5 - кількість міст і доріг у плані. У наступних m рядках дано по два числа - номери міст, в яких починається і закінчується відповідна дорога.
Вихідні дані
У вихідний файл виведіть мінімальне k, таке, що даний у вхідному файлі план є слабо k-зв'язним.