/* GCC */
#include <cstdio>

int N, M, n, m, k, a[1000][1000];
long res = 0;

int main() {
    freopen("display.in", "r", stdin);
    freopen("display.out", "w", stdout);

    scanf("%d%d%d%d%d", &N, &M, &n, &m, &k);


    for(int y = 0; y < N; y++) {
        for(int x = 0; x < M; x++) {
            scanf("%d", a[y] + x);
        }
    }

    for(int y = 0; y <= N - n; y++) {
        for(int x = 0; x <= M - m; x++) {
            if(a[y][x]) {
                int d = k - a[y][x];
                for(int yi = y; yi < y + n; yi++) {
                    for(int xi = x; xi < x + m; xi++) {
                        a[yi][xi] += d;
                        a[yi][xi] %= k;
                    }
                }
                res += d;
            }
        }
    }

    for(int y = N - n + 1; y < N; y++) {
        for(int x = 0; x < M; x++) {
            if(a[y][x]) {
                goto bad_exit;
            }
        }
    }
    for(int y = 0; y < N; y++) {
        for(int x = M - m + 1; x < M; x++) {
            if(a[y][x]) {
                goto bad_exit;
            }
        }
    }

    printf("%ld\n", res);
    return 0;
bad_exit:
    puts("impossible");
    return 0;
}
