B. Меленький Артёмка и Матрица
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Маленький Артёмка очень любит радиоэлектронику — он может паять схемы часами напролёт. Артёмка всегда следит за новинками в ближайшем радиолюбительском магазине. Недавно в магазин поступила новая деталь, и, разумеется, Артёмка сразу же её купил.

Купленный элемент может хранить информацию о матрице из целых чисел размером n × m. Помимо этого, у данного элемента ровно n + m входов, по одному на каждую строку и каждый столбец матрицы. Когда сигнал подаётся на вход, соответствующей строке, она сдвигается циклически влево, то есть первый элемент строки становится последним, второй — первым и так далее. Когда сигнал поступает на столбец, он циклически сдвигается вверх, то есть первый элемент столбца станет последним, второй — первым и так далее. Строки нумеруются целыми числами от 1 до n сверху вниз, а столбцы — целыми числами от 1 до m слева направо.

Артёмка не хочет использовать данный элемент, предварительно не изучив его. Он проделал q операций, каждая из которых состояла либо в подаче сигнала на один из n + m входов, либо в проверке значения в какой-нибудь клетке матрицы.

Артем уже проделал эксперимент и записал результат, но вот беда — он потерял исходный элемент. Помогите ему найти любой подходящий элемент, который мог бы дать ему те же результаты. Гарантируется, что результаты эксперимента непротиворечивы, то есть хотя бы один такой элемент существует.

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

В первой строке входных данных записаны три целых числа n, m и q (1 ≤ n, m ≤ 100, 1 ≤ q ≤ 10 000) — размеры матрицы и число запросов в эксперименте.

В следующих q строках записаны запросы Артемки, по одному запросу в строке. Каждый запрос начинается с целого числа ti (1 ≤ ti ≤ 3), определяющего его тип. Для запросов первого или второго типа далее следует целое число ri (1 ≤ ri ≤ n) или ci (1 ≤ ci ≤ m), а для запросов третьего типа — три целых числа ri, ci и xi (1 ≤ ri ≤ n, 1 ≤ ci ≤ m,  - 109 ≤ xi ≤ 109).

Запрос первого типа (ti = 1) означает, что подаётся сигнал на вход, соответствующий строке ri, то есть произойдёт её циклический сдвиг. Запрос второго типа (ti = 2) означает, что произойдёт циклический сдвиг столбца ci, а запрос третьего типа (ti = 3) означает, что в данный момент времени в клетке, расположенной в строке ri и столбце ci, записано число xi.

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

Выведите какую-нибудь матрицу размера n × m, которая могла изначально быть у Артёмки. Все числа матрицы должны быть целыми и по модулю не превосходить 109.

Если подходящих матриц несколько, разрешается вывести любую из них.

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