#include <bits/stdc++.h>
using namespace std;
stack<int> q;
int main() {
  int n, m, k;
  scanf("%d%d%d", &n, &m, &k);
  int tep = k;
  int i = 0;
  int j;
  int all = 0;
  q.push(0);
  for (j = 1; tep > 0; j++) {
    if (j <= max(n, m)) {
      q.push(min(tep, min(i + 1, min(n, m))));
      i = q.top();
      all += i * j;
      tep = tep - i;
    } else {
      i = min(tep, i - 1);
      if (i != 0) q.push(i);
      all += i * j;
      tep = tep - i;
    }
  }
  printf("%d\n", all);
  int now = q.top();
  q.pop();
  if (m >= n) {
    while (now != 0) {
      for (int k = 1; k <= now; k++) {
        int step = 1;
        for (int w = 1; w < (j - 1 > max(n, m) ? max(n, m) - k + 1 : k); w++) {
          printf("(%d,%d) ", w, 1);
          step++;
        }
        for (int g = 1; g <= j - step; g++) {
          printf("(%d,%d) ", (j - 1 > max(n, m) ? max(n, m) - k + 1 : k), g);
        }
        printf("\n");
      }
      j--;
      now = q.top();
      q.pop();
    }
  } else {
    while (now != 0) {
      for (int k = 1; k <= now; k++) {
        int step = 1;
        for (int w = 1; w < (j - 1 > max(n, m) ? max(n, m) - k + 1 : k); w++) {
          printf("(%d,%d) ", 1, w);
          step++;
        }
        for (int g = 1; g <= j - step; g++) {
          printf("(%d,%d) ", g, (j - 1 > max(n, m) ? max(n, m) - k + 1 : k));
        }
        printf("\n");
      }
      j--;
      now = q.top();
      q.pop();
    }
  }
}
