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.

def solve(n, m, k):

    pipes = []
    i = 1
    j = 0
    complete = len(pipes) >= k-1
    for i in range(1, n+1, 2):
        if complete:
            break
        for j in range(1, m+1):
            if len(pipes) < k - 1:
                pipes.append([(i, j), (i+1, j)])
            if len(pipes) >= k-1:
                complete = True
                break
        if complete:
            break

    dir_is_left = ((m-j) % 2) == 0

    last_pipe = []
    for j_ in range(j+1, m+1):
        if dir_is_left:
            last_pipe.extend([(i + 1, j_), (i, j_)])
            dir_is_left = False
        else:
            last_pipe.extend([(i, j_), (i + 1, j_)])
            dir_is_left = True

    is_go_down = False
    for i_ in range(i+2, n+1):
        if is_go_down:
            for j_ in range(1, m+1):
                last_pipe.append((i_, j_))
            is_go_down = False
        else:
            for j_ in range(m, 0, -1):
                last_pipe.append((i_, j_))
            is_go_down = True

    pipes.append(last_pipe)
    new_pipes = []
    for pipe in pipes:
        cur_pipe = [len(pipe)]
        for x, y in pipe:
            cur_pipe.extend([x, y])
        new_pipes.append(cur_pipe)

    return new_pipes


if __name__ == "__main__":
    n, m, k = map(int, input().split())
    for pipe in solve(n, m, k):
        print(' '.join(map(str, pipe)))

# def test():
#     print(solve(2, 3, 1))