#include<iostream>
using namespace std;
void printSumTricky(int mat[][500], int k,int m,int n)
{
int stripSum[500][500];
for (int j = 0; j < n; j++)
{
int sum = 0;
for (int i = 0; i < k; i++)
sum += mat[i][j];
stripSum[0][j] = sum;
for (int i = 1; i < m - k + 1; i++)
{
sum += (mat[i + k - 1][j] - mat[i - 1][j]);
stripSum[i][j] = sum;
}
}
for (int i = 0; i < m - k + 1; i++)
{
int sum = 0;
for (int j = 0; j < k; j++)
sum += stripSum[i][j];
cout << sum/(k*k) << " ";
for (int j = 1; j < n - k + 1; j++)
{
sum += (stripSum[i][j + k - 1] - stripSum[i][j - 1]);
cout << sum/(k*k) << " ";
}
cout << endl;
}
}
int main() {
int t; cin >> t;
while (t--) {
int m, n, k;
cin >> m >> n >> k;
int M[500][500], N[500][500], X[500][500] = { 0 };
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++)
cin >> M[i][j];
}
printSumTricky(M, k, m, n);
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnZvaWQgcHJpbnRTdW1Ucmlja3koaW50IG1hdFtdWzUwMF0sIGludCBrLGludCBtLGludCBuKQp7CiAgICBpbnQgc3RyaXBTdW1bNTAwXVs1MDBdOwogICAgZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspCiAgICB7CiAgICAgICAgaW50IHN1bSA9IDA7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBrOyBpKyspCiAgICAgICAgICAgIHN1bSArPSBtYXRbaV1bal07CiAgICAgICAgc3RyaXBTdW1bMF1bal0gPSBzdW07CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBtIC0gayArIDE7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIHN1bSArPSAobWF0W2kgKyBrIC0gMV1bal0gLSBtYXRbaSAtIDFdW2pdKTsKICAgICAgICAgICAgc3RyaXBTdW1baV1bal0gPSBzdW07CiAgICAgICAgfQogICAgfQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtIC0gayArIDE7IGkrKykKICAgIHsKICAgICAgICBpbnQgc3VtID0gMDsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGs7IGorKykKICAgICAgICAgICAgc3VtICs9IHN0cmlwU3VtW2ldW2pdOwogICAgICAgIGNvdXQgPDwgc3VtLyhrKmspIDw8ICIgICI7CiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPCBuIC0gayArIDE7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIHN1bSArPSAoc3RyaXBTdW1baV1baiArIGsgLSAxXSAtIHN0cmlwU3VtW2ldW2ogLSAxXSk7CiAgICAgICAgICAgIGNvdXQgPDwgc3VtLyhrKmspIDw8ICIgICI7CiAgICAgICAgfQoKICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICB9Cn0KaW50IG1haW4oKSB7CglpbnQgdDsgY2luID4+IHQ7Cgl3aGlsZSAodC0tKSB7CgkJaW50IG0sIG4sIGs7CgkJY2luID4+IG0gPj4gbiA+PiBrOwoJCWludCBNWzUwMF1bNTAwXSwgTls1MDBdWzUwMF0sIFhbNTAwXVs1MDBdID0geyAwIH07CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBtOyBpKyspIHsKCQkJZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspCgkJCQljaW4gPj4gTVtpXVtqXTsKCQl9CiAgICAgICAgcHJpbnRTdW1Ucmlja3koTSwgaywgbSwgbik7Cgl9Cn0=