Ученые в IT-компании разработали квантовый суперкомпьютер. Опытный образец, разработанный учеными, содержит $$$n \times m$$$ квантовых процессоров, организованных в виде сетки из $$$n$$$ строк и $$$m$$$ столбцов. Обозначим процессор в $$$j$$$-й ячейке $$$i$$$-й строки как $$$(i, j)$$$.
Ученые запустили квантовый суперкомпьютер, однако после окончания вычислений произошел сбой в электропитании, из-за чего часть процессоров оказалась повреждена. В распоряжении исследователей осталось всего лишь $$$k$$$ уцелевших процессоров.
Результат вычислений находится в памяти процессора $$$(1, 1)$$$, а устройство вывода подключено к процессору $$$(n, m)$$$. Для передачи информации от одного процессора к другому используется квантовая телепортация. Особенность квантовой телепортации заключается в том, что с увеличением расстояния возникает нестабильность, требующая дополнительной энергии. Поэтому чтобы обеспечить перенос информации от процессора $$$(x_i, y_i)$$$ к процессору $$$(x_j, y_j)$$$ требуется $$$2^{\max(|x_i - x_j|, |y_i - y_j|)}$$$ единиц энергии. Ученые хотят перенести информацию с процессора $$$(1, 1)$$$ на процессор $$$(n, m)$$$, затратив минимальное количество энергии. При этом можно использовать в качестве промежуточных другие уцелевшие процессоры. Использовать поврежденные процессоры нельзя.
Требуется написать программу, которая по описанию уцелевших процессоров определяет, каким образом необходимо передавать данные между процессорами, чтобы перенести информацию из процессора $$$(1, 1)$$$ в процессор $$$(n, m)$$$, потратив минимальное суммарное количество энергии.
В первой строке входных данных находятся три целых числа $$$n$$$, $$$m$$$ и $$$k$$$ — количество строк и столбцов в сетке и количество оставшихся невредимыми после отключения электричества процессоров ($$$2 \le n, m, k \le 10\,000$$$).
Далее следуют $$$k$$$ строк, в $$$i$$$-й из которых содержатся два целых числа $$$x_i$$$ и $$$y_i$$$ —номер строки и столбца $$$i$$$-го уцелевшего процессора ($$$1 \le x_i \le n$$$, $$$1 \le y_i \le m$$$).
Гарантируется, что $$$(x_1, y_1) = (1, 1)$$$, $$$(x_k, y_k) = (n, m)$$$. Все процессоры находятся в разных ячейках сетки.
Первая строка выходных данных должна содержать число $$$L$$$ — количество процессоров, которые будут использованы при передаче информации.
Вторая строка должна содержать $$$L$$$ чисел — номера уцелевших процессоров в том порядке, в котором они будут получать информацию. Первым должен быть выведен процессор номер $$$1$$$, а последним — процессор номер $$$k$$$.
Если вариантов передачи информации, минимизирующих затраченную энергию, несколько, то можно вывести любой из них.
$$$$$$ \begin{array}{|c|c|c|c|} \hline \text{Подзадача} & \text{Баллы} & \text{Ограничения} & \text{Необх. подзадачи} \\ \hline 1 & 21 & 2 \le n, m, k \le 20 & 0 \\ \hline 2 & 13 & 2 \le n, m, k \le 500 & 0, 1 \\ \hline 3 & 33 & 2 \le n, m, k \le 10\,000; x_i \neq x_j; y_i \neq y_j & \\ \hline 4 & 33 & 2 \le n, m, k \le 10\,000 & 0 - 4 \\ \hline \end{array}$$$$$$
Вам будут начислены баллы за группу, только если пройдены все тесты этой группы и во всех группах, от которых она зависит. Группа $$$0$$$ соответствует примерам из условия.
4 5 3 1 1 2 3 4 5
3 1 2 3
5 6 9 1 1 4 3 4 6 2 5 3 1 3 3 3 6 5 4 5 6
5 1 6 2 8 9
| Название |
|---|


