#include using namespace std; #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() #define pb push_back #define ppb pop_back typedef long long ll; typedef pair pii; typedef vector vi; typedef pair pl; typedef vector vl; typedef vector vvl; #define rep2(i, n) for (ll i = 0; i < (n); ++i) #define rep3(i, a, b) for (ll i = (a); i < (b); ++i) #define rep_select(_1, _2, _3, name, ...) name #define rep(...) rep_select(__VA_ARGS__, rep3, rep2)(__VA_ARGS__) #define rrep2(i, n) for (ll i = (ll)(n) - 1; i >= 0; --i) #define rrep3(i, a, b) for (ll i = (ll)(b) - 1; i >= (ll)(a); --i) #define rrep(...) rep_select(__VA_ARGS__, rrep3, rrep2)(__VA_ARGS__) vl dx={0,1,-1,0}; vl dy={-1,0,0,1}; int main() { ll h,w,m; cin >> h >> w >> m; if(m==0){ cout << -1 << endl; return 0; } if(h%2==1&&w%2==1&&m==(h*w-1)/2){ cout << -1 << endl; return 0; } vvl ans(h,vl(w,-1)); //0~m-2, h*w-(m-1)=h*w-1で ll mn=0,mx=h*w-(m-1); ll res=h*w-2*(m-1); ll now=m-1; ll ni=0,nj=0; while(res>0){ //cout << ni << nj << now << endl; ans[ni][nj]=now; now++; res--; if(res==0) break; rep(i,4){ ll ti=ni+dx[i],tj=nj+dy[i]; ll cnt=m-1-res; if(cnt==1&&min(h,w)>=2) ti=1,tj=0; if(cnt==2&&min(h,w)>=2) ti=1,tj=1; if(cnt==3&&min(h,w)>=2) ti=0,tj=1; if(ti>=0&&ti=0&&tj