#include <bits/stdc++.h>
using namespace std;
int nnext[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
long long gcd(long long x, long long y) { return !y ? x : gcd(y, x % y); }
int main() {
  int n, m, k, idx, x, y, now, have, array[350][350];
  cin >> n >> m >> k, x = y = 1, idx = now = have = 0;
  vector<vector<pair<int, int> > > ans(k);
  while (k) {
    if (k == 1) {
      if (y > m)
        x++, y = m, now = 1;
      else if (!y)
        x++, y = 1, now = 0;
      ans[idx].push_back(make_pair(x, y)), have++;
      if (have == n * m) break;
      if (!now)
        y++;
      else
        y--;
      continue;
    } else {
      ans[idx].push_back(make_pair(x, y)), have++;
      if (!now)
        y++;
      else
        y--;
      if (y > m)
        x++, y = m, now = 1;
      else if (!y)
        x++, y = 1, now = 0;
    }
    if (ans[idx].size() == 2) idx++, k--;
  }
  for (int i = 0; i < int(ans.size()); i++) {
    cout << ans[i].size() << " ";
    for (int j = 0; j < int(ans[i].size()); j++)
      cout << ans[i][j].first << " " << ans[i][j].second << " ";
    cout << endl;
  }
  return 0;
}
