#include <bits/stdc++.h>   using namespace std;      int dx[4] = {0, 0, 1, -1};   int dy[4] = {-1, 1, 0, 0};      int lredge[600][599]; //n, m-1   int tdedge[599][600]; //n-1, m   int n, m, k;      int distance(int i1, int j1, int i2, int j2){    //next cell is above    if(i1 > i2){     return tdedge[i2][j1];    }    //next cell is below    else if(i2 > i1){     return tdedge[i1][j1];    }    //next cell is to the left    else if(j1 > j2){     return lredge[i1][j2];    }    //next cell is to the right    else if(j2 > j1){     return lredge[i1][j1];    }       assert(1 == 0);   }      int dp[510][510][25];      int32_t main(){    cin >> n >> m >> k;       for(int i=0; i<510; i++)     for(int j=0; j<510; j++)      for(int k=1; k<25; k++)       dp[i][j][k] = 1000000000;       for(int i=0; i<n; i++){     for(int j=0; j<m-1; j++){      cin >> lredge[i][j];     }    }       for(int i=0; i<n-1; i++){     for(int j=0; j<m; j++){      cin >> tdedge[i][j];     }    }       if(k%2 == 1){     for(int i=0; i<n; i++){      for(int j=0; j<m; j++)       cout << -1 <<    ;      cout <<   n ;     }     return 0;    }       // for(int i=0; i<n; i++){    //  for(int j=0; j<m; j++){    //   for(int l=0; l<4; l++){    //    int newx = i + dx[l];    //    int newy = j + dy[l];    //    if(0 <= newx && newx <= n-1 && 0 <= newy && newy <= m-1){    //     dp[i][j][1] = min(dp[i][j][1], distance(i, j, newx, newy));    //    }    //   }    //  }    // }       // for(int i=0; i<n; i++){    //  for(int j=0; j<m; j++){    //   cout << dp[i][j][1] <<    ;    //  }    //  cout <<   n ;    // }       // for(int i=0; i<n; i++){    //  for(int j=0; j<m; j++){    //   cout << dp[i][j][0] <<    ;    //  }    //  cout <<   n ;    // }       for(int l=2; l<=k; l+=2){     for(int i=0; i<n; i++){      for(int j=0; j<m; j++){       for(int r=0; r<4; r++){        int newx = i + dx[r];        int newy = j + dy[r];        if(0 <= newx && newx <= n-1 && 0 <= newy && newy <= m-1){         dp[i][j][l] = min(dp[i][j][l], dp[newx][newy][l-2]+2*distance(i, j, newx, newy));        }       }      }     }        // debug( AA );     // for(int i=0; i<n; i++){     // for(int j=0; j<m; j++){     //  cout << dp[i][j][l] <<    ;     // }     // cout <<   n ;    // }    // cout <<   n ;    }       for(int i=0; i<n; i++){     for(int j=0; j<m; j++){      cout << dp[i][j][k] <<    ;     }     cout <<   n ;    }   }   