Вася учится в первом классе математической школы и делает большие успехи в освоении математики. Сегодня учитель задал детям следующую задачу. Сначала он расчертил доску так, чтобы она представляла собой матрицу N × N, как показано на рисунке (в данном примере N = 3).
Далее, учитель продемонстрировал различные варианты, как можно заполнить матрицу числами от 1 до N2 строго по возрастанию:
| 1 | 2 | 3 |
| 6 | 5 | 4 |
| 7 | 8 | 9 |
| 1 | 6 | 7 |
| 2 | 5 | 8 |
| 3 | 4 | 9 |
| 1 | 2 | 3 |
| 8 | 9 | 4 |
| 7 | 6 | 5 |
| 1 | 8 | 7 |
| 2 | 9 | 6 |
| 3 | 4 | 5 |
Учитель всегда начинал с верхнего левого угла. В матрице (1) пример представлял собой вертикальную «змейку», в матрице (2) — горизонтальную. Матрицы (3) и (4) представляют собой спираль — в примере (3) заполнение происходит по часовой стрелке, а в примере (4) — против часовой.
Вам необходимо помочь Васе написать программу, которая по заданному N и алгоритму заполнения — (1), (2), (3) или (4) будет печатать результирующую матрицу.
В единственной строке содержатся два натуральных числа N (1 ≤ N ≤ 100) и a (1 ≤ a ≤ 4), где a определяет алгоритм заполнения матрицы.
Выведите N строк, состоящих из N чисел, разделенных пробелами, представляющих собой матрицу, заполненную по заданному алгоритму.
3 1
1 2 3
6 5 4
7 8 9
3 2
1 6 7
2 5 8
3 4 9
3 3
1 2 3
8 9 4
7 6 5
3 4
1 8 7
2 9 6
3 4 5
В примерах даны входные и выходные данные матриц, предложенных учителем.
| Название |
|---|


