Операторам склада необходимо переместить тяжелую коробку с использованием специального погрузчика. Склад можно схематически представить как n комнат, соединенных m коридорами. От любой комнаты можно добраться до любой другой, перемещаясь по коридорам. Комнаты пронумерованы от 1 до n. Коридор номер i непосредственно соединяет комнаты с номерами u_i и v_i, по коридору можно перемещаться в обоих направлениях.
Погрузчик может поднимать и опускать коробку, а также, если он не держит коробку, перемещаться по свободным комнатам и коридорам. Изначально погрузчик находится в комнате номер 1, и держит поднятую коробку. Погрузчику доступны следующие действия:
Пустой погрузчик перемещается между комнатами очень быстро, гораздо быстрее, чем он поднимает или опускает коробку. Поэтому будем считать, что на выполнение первого или второго действия погрузчик тратит одну единицу времени, а третье действие выполняется мгновенно. Ваша задача --- для каждой комнаты p (2≤p≤n) определить, за какое минимальное время погрузчик может из изначального положения --- в первой комнате с поднятой коробкой, оказаться в комнате p с поднятой коробкой. Либо определить, что это сделать невозможно.
Каждый тест состоит из нескольких наборов входных данных. В первой строке дано одно целое число t (1≤t≤100,000) --- количество наборов входных данных. Далее следуют описания наборов входных данных.
В первой строке каждого набора входных данных даны два целых числа n и m (2≤n≤500,000, 1≤m≤500,000) --- количество комнат и коридоров на складе.
В следующих m строках даны по два целых числа u_i и v_i (1≤u_i,v_i≤n, u_i=v_i) --- номера комнат, соединенных i-м коридором. Гарантируется, что каждая пара комнат, соединенных коридором, упомянута ровно один раз. Гарантируется, что если все комнаты свободны, от любой комнаты можно добраться до любой другой, перемещаясь по коридорам.
Обозначим за ∑n сумму n, а за ∑m сумму m по всем наборам входных данных в одном тесте. Гарантируется, что ∑n≤500,000, ∑m≤500,000.
Для каждого набора входных данных выведите n−1 чисел: i-е из них должно быть равно минимальному количеству подъемов и опусканий коробки, которые нужно сделать погрузчику, чтобы оказаться в комнате i+1 с поднятой коробкой. Если это сделать невозможно, то i-е число должно быть равно −1.
В четвертом наборе входных данных погрузчик может выполнить следующие действия, чтобы из комнаты 1 с поднятой коробкой быстрее всего оказаться в комнате 4 с поднятой коробкой:
Всего будет потрачено 6 единиц времени.