Valera has got a rectangle table consisting of *n* rows and *m* columns. Valera numbered the table rows starting from one, from top to bottom and the columns – starting from one, from left to right. We will represent cell that is on the intersection of row *x* and column *y* by a pair of integers (*x*, *y*).

Valera wants to place exactly *k* tubes on his rectangle table. A tube is such sequence of table cells (*x*<sub class="lower-index">1</sub>, *y*<sub class="lower-index">1</sub>), (*x*<sub class="lower-index">2</sub>, *y*<sub class="lower-index">2</sub>), ..., (*x*<sub class="lower-index">*r*</sub>, *y*<sub class="lower-index">*r*</sub>), that: 
 -  *r* ≥ 2; -  for any integer *i* (1 ≤ *i* ≤ *r* - 1) the following equation |*x*<sub class="lower-index">*i*</sub> - *x*<sub class="lower-index">*i* + 1</sub>| + |*y*<sub class="lower-index">*i*</sub> - *y*<sub class="lower-index">*i* + 1</sub>| = 1 holds; -  each table cell, which belongs to the tube, must occur exactly once in the sequence. 
Valera thinks that the tubes are arranged in a fancy manner if the following conditions are fulfilled: 
 -  no pair of tubes has common cells; -  each cell of the table belongs to some tube. 
Help Valera to arrange *k* tubes on his rectangle table in a fancy manner.
The first line contains three space-separated integers *n*, *m*, *k* (2 ≤ *n*, *m* ≤ 300; 2 ≤ 2*k* ≤ *n*·*m*) — the number of rows, the number of columns and the number of tubes, correspondingly.
#https://codeforces.com/problemset/problem/441/C
import sys
from collections import *
sys.setrecursionlimit(10**5)
itr = (line for line in sys.stdin.read().strip().split('\n'))
INP = lambda: next(itr)
def ni(): return int(INP())
def nl(): return [int(_) for _ in INP().split()]



x, y, cgr = nl()
g = [[False for _ in range(y)] for _ in range(x)]
#fill it via dfs, fill two at a time until there are only one left

def dfs(xx, yy, cgr):
    g[xx][yy] = True
    q = [(xx,yy)]
    ordX =[xx]
    ordY = [yy]
    cnt = 1
    while q:
        a, b = q.pop()
        #for _ in g: print(_)
        for nx, ny in [(a+1, b), (a-1, b), (a, b+1), (a, b-1)]:
            if nx >= 0 and nx < x and ny >= 0 and ny < y:
                if not g[nx][ny]:
                    q.append((nx,ny))
                    ordX.append(nx)
                    ordY.append(ny)
                    cnt += 1
                    q.append((nx,ny))
                    g[nx][ny] = True
                    if cgr > 1 and cnt > 1:
                        cgr -= 1
                        return ordX, ordY
    return ordX, ordY

for i in range(x):
    for j in range(y):
        if not g[i][j]:
            a, b = dfs(i, j, cgr)
            cgr -= 1
            print(len(a))
            for e in a:
                print(e+1, end = " ")
            for e in b: print(e +1, end = " ")
            print()