Президент объявил развитие трамвайного движения приоритетным национальным проектом.
Бюджетных средств, выделенных Екатеринбургу в рамках этого проекта,
должно хватить на полную реконструкцию трамвайной сети города.
В Екатеринбурге 2n трамвайных остановок. В ходе реконструкции решено оставить
все остановки на своих местах и не строить новых. Пути же должны быть проложены так,
чтобы от любой остановки до любой другой можно было доехать на трамвае без промежуточных
остановок.
После изучения сообщений, оставленных на трамвайном форуме, выяснилось, что
горожане будут довольны лишь в том случае, если после окончания реконструкции
для любой пары остановок будет существовать трамвайный маршрут,
на котором можно добраться от одной из этих остановок до другой, не останавливаясь на
промежуточных остановках. Понятно, что этому требованию удовлетворяет сеть из
n(2n − 1) маршрутов, состоящих всего из двух остановок каждый.
Но мэр Екатеринбурга заинтересован в том, чтобы после реконструкции осталось ровно
n трамвайных маршрутов, совершающих по пути следования ровно 2n
остановок каждый (включая конечные). Трамваи должны двигаться по этим
маршрутам в обоих направлениях.
Как провести реконструкцию так, чтобы и мэр города, и жители
остались довольны?
Исходные данные
В единственной строке дано целое число n, 1 ≤ n ≤ 100.
Результат
Выведите n строк, содержащих описание трамвайных маршрутов.
Каждый маршрут — последовательность целых чисел от 1 до 2n, записанных через пробел.
Маршрут может проходить несколько раз через одну остановку.
Если задача имеет несколько решений, можно вывести любое из них.
Если задача не имеет решения, выведите в единственной строке число −1.
Пример
исходные данные | результат |
---|
3
| 1 6 2 1 3 4
2 3 6 5 4 6
5 1 4 2 5 3
|
Автор задачи: Александр Ипатов (идея — Магаз Асанов)
Источник задачи: XII чемпионат Урала по спортивному программированию, 29 марта 2008 г.