#include <bits/stdc++.h>
using namespace std;
int n, m, k;
struct II {
  int ST, ND;
  II(int a = 0, int b = 0) : ST(a), ND(b) {}
  bool operator<(const II& op) const {
    if (ST + ND != op.ST + op.ND) return ST + ND < op.ST + op.ND;
    return ST > op.ST;
  }
};
vector<II> g;
void print(int r, int c) {
  bool pr = false;
  for (int j = 1; j <= c; ++j) printf("(%d,%d) ", 1, j);
  for (int j = 2; j <= r; ++j) printf("(%d,%d) ", j, c);
  printf("\n");
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= m; ++j) g.push_back(II(i, j));
  sort(g.begin(), g.end());
  int ans = 0;
  for (int i = 0; i < k; ++i) ans += g[i].ST + g[i].ND - 1;
  printf("%d\n", ans);
  int dem = 0;
  for (int i = k - 1; i >= 0; --i) {
    print(g[i].ST, g[i].ND);
  }
  return 0;
}
