#include <bits/stdc++.h>
using namespace std;
int a[51][51];
int dx[] = {1, 0, -1, 0};
int dy[] = {0, 1, 0, -1};
void brace(int i, int j) { cout << '(' << i << ',' << j << ')' << ' '; }
int main() {
  memset(a, -1, sizeof a);
  int n, m, K;
  cin >> n >> m >> K;
  queue<pair<int, int> > q;
  a[1][1] = 1;
  q.push(make_pair(1, 1));
  int cnt = 1;
  while (!q.empty() && cnt < K) {
    pair<int, int> h = q.front();
    q.pop();
    for (int k = 0; k < 4; k++) {
      int ni = dx[k] + h.first;
      int nj = dy[k] + h.second;
      if (ni >= 1 && ni <= n && nj >= 1 && nj <= m && a[ni][nj] == -1) {
        a[ni][nj] = a[h.first][h.second] + 1;
        q.push(make_pair(ni, nj));
        ++cnt;
        if (cnt == K) break;
      }
    }
  }
  int tot = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      if (a[i][j] >= 0) {
        tot += a[i][j];
      }
    }
  }
  cout << tot << '\n';
  for (;;) {
    int max_val = -1;
    int ci = -1, cj = -1;
    for (int i = 1; i <= n; i++) {
      for (int j = 1; j <= m; j++) {
        if (a[i][j] > max_val) {
          max_val = a[i][j];
          ci = i, cj = j;
        }
      }
    }
    if (max_val == -1) break;
    int mi = 1, mj = 1;
    brace(mi, mj);
    while (mi < ci) {
      ++mi;
      brace(mi, mj);
    }
    while (mj < cj) {
      ++mj;
      brace(mi, mj);
    }
    a[ci][cj] = -1;
    cout << '\n';
  }
  return 0;
}
