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.
import sys

#sys.stdin, sys.stdout = open("input.txt", "r"), open("output.txt", "w")

n, m, k = map(int, input().split())
mat = [[False for __ in range(m)] for ___ in range(n)]

st = []
depth = -1
st.append((0, 0))

while len(st) > 0:
    depth = (depth + 1) % 2
    if depth == 0:
        if k == 1:
            break
        print("2", end=" ")
    u = st.pop()
    ui, uj = u
    mat[ui][uj] = True
    print("%d %d" % (ui+1, uj+1), end=" ")
    if depth == 1:
        k -= 1
        print()
    if ui + 1 < n and not mat[ui + 1][uj]:
        mat[ui + 1][uj] = True
        st.append((ui + 1, uj))
    if uj + 1 < m and not mat[ui][uj + 1]:
        mat[ui][uj + 1] = True
        st.append((ui, uj + 1))
    if ui - 1 >= 0 and not mat[ui - 1][uj]:
        mat[ui - 1][uj] = True
        st.append((ui - 1, uj))
    if uj - 1 >= 0 and not mat[ui][uj - 1]:
        mat[ui][uj - 1] = True
        st.append((ui, uj - 1))

if k > 0:
    last = []
    while len(st) > 0:
        u = st.pop()
        ui, uj = u
        last.append(u)
        mat[ui][uj] = True
        if ui + 1 < n and not mat[ui + 1][uj]:
            mat[ui + 1][uj] = True
            st.append((ui + 1, uj))
        if uj + 1 < m and not mat[ui][uj + 1]:
            mat[ui][uj + 1] = True
            st.append((ui, uj + 1))
        if ui - 1 >= 0 and not mat[ui - 1][uj]:
            mat[ui - 1][uj] = True
            st.append((ui - 1, uj))
        if uj - 1 >= 0 and not mat[ui][uj - 1]:
            mat[ui][uj - 1] = True
            st.append((ui, uj - 1))
    print(len(last), end=" ")
    for p in last:
        print("%d %d" % (p[0]+1, p[1]+1), end=" ")
