#include <stdio.h>
#include <stdlib.h>
/*
Еден елемент се заматува ако се најде аритметичка средина на елементот и
сите негови соседи.Сосед на еден елемент се сите елементи кои припаѓаат на матрицата и се околу истиот елемент(хоризонтално,вертикално,дијагонално).
Во датотеката input.txt е
сместена матрица од реални вроеви(3,n,m<50).
Во првиот ред се дефинирани бројот на редици и колони н матрицата и во
секој преостанат ред е внесен еден ред о матрицата(види пример).По читањето на матрицата,од стандарден влез се внесуваат и
2 пара координанти на матрицата(ред и колона) кои го репрезентираат горниот-лев и долниот-десен елемент од регионот.Потребно е да
генерирате нова матрица во која ќе ги заматите сите елементи кои припаѓаат на регионот.Новодбиената матриц,во истиот формат треба да
се запише во датотеката output.txt.
*/
int main()
{
    FILE *inp=fopen("input.txt" , "r");
    int i,j;
    int n,m;
    int x,y;
    int k,l;
    double as=0;
    double sum=0;
    int brEl=0;

    scanf("%d%d",&x,&y);
    scanf("%d%d",&k,&l);

    fscanf(inp,"%d%d",&n,&m);

    double matrica[101][101];
    double matrica2[101][101];

    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            fscanf(inp,"%lf",&matrica[i][j]);
            matrica2[i][j]=matrica[i][j];
        }
    }

    for(i=x;i<=k;i++){

        for(j=y;j<=l;j++)
        {
            as=0;
            sum=0;
            brEl=0;
            if(i-1>=0 && j-1>=0)
            {
               sum+=matrica[i-1][j-1];
               brEl++;
            }
            if(i-1>=0)
            {
                sum+=matrica[i-1][j];
                brEl++;
            }
            if(i-1>=0 && j+1<m)
            {
                sum+=matrica[i-1][j+1];
                brEl++;
            }
            if(j-1>=0)
            {
                sum+=matrica[i][j-1];
                brEl++;
            }
            sum+=matrica[i][j];
            brEl++;
            if(j+1<m)
            {
                sum+=matrica[i][j+1];
                brEl++;
            }
            if(i+1<n && j-1>=0)
            {
                sum+=matrica[i+1][j-1];
                brEl++;
            }
            if(i+1<n)
            {
                sum+=matrica[i+1][j];
                brEl++;
            }
            if(i+1<n && j+1<m)
            {
                sum+=matrica[i+1][j+1];
                brEl++;
            }

            as=sum/brEl;
            matrica2[i][j]=as;
        }
    }

    FILE *out=fopen("output.txt" , "w");
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            fprintf(out,"%lf ",matrica2[i][j]);
        }
        fprintf(out,"\n");
    }
    fclose(inp);
    fclose(out);
    return 0;
}


