#include<bits/stdc++.h>
using namespace std;
const int MAXN=512;
const int MAXK=12;
const int INF=1e8;
int dp[MAXN][MAXN][MAXK];
int n,m,k;
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};
int w[MAXN][MAXN][4];
int main()
{
	cin>>n>>m>>k;
	for(int i=0;i<MAXN;i++)
	{
		for(int j=0;j<MAXN;j++)
		{
			w[i][j][0]=INF;
			w[i][j][1]=INF;
			w[i][j][2]=INF;
			w[i][j][3]=INF;
			for(int l=1;l<MAXK;l++)dp[i][j][l]=INF;
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<m;j++)
		{
			cin>>w[i][j][3];
			w[i][j+1][2]=w[i][j][3];
		}
	}
	for(int i=1;i<n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>w[i][j][1];
			w[i+1][j][0]=w[i][j][1];
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			dp[i][j][0]=0;
		}
	}
	for(int step=1;step<MAXK;step++)
	{
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				dp[i][j][step]=min(dp[i][j][step],dp[i-1][j][step-1]+w[i][j][0]);
				dp[i][j][step]=min(dp[i][j][step],dp[i+1][j][step-1]+w[i][j][1]);
				dp[i][j][step]=min(dp[i][j][step],dp[i][j-1][step-1]+w[i][j][2]);
				dp[i][j][step]=min(dp[i][j][step],dp[i][j+1][step-1]+w[i][j][3]);
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(k%2==1)cout<<"-1 ";
			else cout<<dp[i][j][k/2]*2<<" ";
		}
		cout<<endl;
	}
return 0;
}
