VK Cup 2016 - Раунд 2 |
---|
Закончено |
Маленький Артёмка очень любит радиоэлектронику — он может паять схемы часами напролёт. Артёмка всегда следит за новинками в ближайшем радиолюбительском магазине. Недавно в магазин поступила новая деталь, и, разумеется, Артёмка сразу же её купил.
Купленный элемент может хранить информацию о матрице из целых чисел размером 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
Название |
---|