#include <bits/stdc++.h>
using namespace std;
struct Point {
  int dist, x, y;
  operator int() const { return dist; }
  void out() { printf("(%d,%d) ", x, y); }
};
int n, m, k;
vector<Point> p;
void EXEC() {
  cin >> n >> m >> k;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= m; ++j) p.push_back({i + j - 1, i, j});
  partial_sort(p.begin(), p.begin() + k, p.end(), less<int>());
  p.erase(p.begin() + k, p.end());
  reverse(p.begin(), p.end());
  cout << accumulate(p.begin(), p.end(), 0) << endl;
  for (auto i : p) {
    Point t = {0, 1, 1};
    t.out();
    while (t.x < i.x) {
      ++t.x;
      t.out();
    }
    while (t.y < i.y) {
      ++t.y;
      t.out();
    }
    cout << endl;
  }
}
int main() {
  EXEC();
  return 0;
}
