#include <stdio.h>
#include <stdlib.h>
#define prt(x) {for (int i = 0; i < w; ++i)putchar(x);putchar('\n');}
void pp(char *a, int h, int w)
{
    prt('-')
    for (int i = 0; i < h; ++i)prt(*a++);
    prt('-')
}
int main()
{
    int h, w;
    printf("H W = ");
    scanf("%d %d", &h, &w);
    char *a = (char *)malloc(h * w * (sizeof(char)));
    for (int i = 0; i < h * w; ++i)
        a[i] = '0';
    for (int i = 0; i < h * w / 5; ++i)
    {
        int x = rand() % h;
        int y = rand() % w;
        a[x * w + y] = '*';
    }
    pp(a, h, w);
    for (int i = 0; i < h; ++i)
    {
        for (int j = 0; j < w; ++j)
        {
            int ij = i * w + j;
            if (a[ij] == '*')continue;
            for (int di = -1; di < 2; ++di)
            {
                int xx = i + di;
                if ((xx < 0) || (xx >= h))continue;
                for (int dj = -1; dj < 2; ++dj)
                {
                    if ((di + dj) % 2 == 0)continue;
                    int yy = j + dj;
                    if ((yy < 0) || (yy >= w))continue;
                    a[ij] += (a[xx * w + yy] == '*');
                }
            }
        }
    }
    pp(a, h, w);
    return 0;
}
