#include <bits/stdc++.h>
using namespace std;
vector<vector<pair<int, int> > > v;
int a[150][150];
int n, m, q;
void ss(int num) {
  pair<int, int> p = v[num][0];
  for (int i = 1; i < m; i++) {
    v[num][i - 1] = v[num][i];
  }
  v[num][m - 1] = p;
}
void st(int num) {
  pair<int, int> p = v[0][num];
  for (int i = 1; i < n; i++) {
    v[i - 1][num] = v[i][num];
  }
  v[n - 1][num] = p;
}
int main() {
  cin >> n >> m >> q;
  v.resize(n + 2);
  for (int i = 0; i < n; i++) {
    v[i].resize(m + 2);
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      v[i][j].first = i;
      v[i][j].second = j;
      a[i][j] = 0;
    }
  }
  for (int jj = 0; jj < q; jj++) {
    int z;
    cin >> z;
    if (z == 1) {
      int num;
      cin >> num;
      ss(num - 1);
    }
    if (z == 2) {
      int num;
      cin >> num;
      st(num - 1);
    }
    if (z == 3) {
      int x, y, val;
      cin >> x >> y >> val;
      x--;
      y--;
      a[v[x][y].first][v[x][y].second] = val;
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      cout << a[i][j] << " ";
    }
    cout << endl;
  }
}
