#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
double** mx = new double* [n];
for (int i = 0; i < n; ++i) {
mx[i] = new double[m];
for (int j = 0; j < m; ++j) cin >> mx[i][j];
}
double** my = new double* [n];
for (int i = 0; i < n; ++i) {
my[i] = new double[m];
for (int j = 0; j < m; ++j) {
double sum = 0.0;
int count = 0;
if (i - 1 >= 0) {
sum += mx[i - 1][j];
++count;
if (j - 1 >= 0) {
sum += mx[i - 1][j - 1];
++count;
}
if (j + 1 < m) {
sum += mx[i - 1][j + 1];
++count;
}
}
if (i + 1 < n) {
sum += mx[i + 1][j];
++count;
if (j + 1 < m) {
sum += mx[i + 1][j + 1];
++count;
}
if (j - 1 >= 0) {
sum += mx[i + 1][j - 1];
++count;
}
}
if (j - 1 >= 0) {
sum += mx[i][j - 1];
++count;
}
if (j + 1 < m) {
sum += mx[i][j + 1];
++count;
}
my[i][j] = sum / count;
}
}
system("cls");
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) cout << setw(8) << mx[i][j];
puts("");
}
puts("");
cout.setf(ios::fixed);
cout.precision(3);
double sum = 0.0;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cout << setw(8) << my[i][j];
if (j < i) sum += fabs(my[i][j]);
}
puts("");
}
cout << '\n' << setw(8) << sum << '\n';
for (int i = 0; i < n; ++i) delete[] my[i];
delete[] my;
for (int i = 0; i < n; ++i) delete[] mx[i];
delete[] mx;
system("pause > nul");
}