Олимпиадный тренинг

Задача . G. Кратчайший путь?


Дан неориентированный граф со взвешенными рёбрами. Длина некоторого пути между двумя вершинами равна побитовому исключающему или весов всех рёбер, по которым проходит путь (если некоторое ребро используется в пути несколько раз, то столько же раз оно учитывается в длине пути). Вам необходимо найти минимально возможную длину пути между вершиной 1 и вершиной n.

Обратите внимание, что граф может содержать кратные рёбра и/или петли. Гарантируется, что граф связный.

Входные данные

В первой строке заданы два целых числа n и m (1 ≤ n ≤ 100000, n - 1 ≤ m ≤ 100000) — количество вершин и рёбер в графе.

Затем следуют m строк. В каждой строке заданы три целых числа x, y и w (1 ≤ x, y ≤ n, 0 ≤ w ≤ 108). Эти числа задают ребро между вершинами x и y с весом w.

Выходные данные

Выведите одно число — минимально возможную длину пути между вершинами 1 и n.


Примеры
Входные данныеВыходные данные
1 3 3
1 2 3
1 3 2
3 2 0
2
2 2 2
1 1 3
1 2 3
0

time 3000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя