def show(g):
    return '\n'.join(''.join(x) for x in g) +'\n\n'

def solve(m, n, k):
    g = [["#"] * (m + 2) ] + [list(f"#{' ' * m}#") for _ in range(n)] + [["#"] * (m + 2)]
    
    if m == 1:
        x, y = 0, 1
        dx = 1
        r = 0
        while r < k:
            u, v = x + dx, y
            if u in (0, n + 1):
                dx *= -1
                
            else:                
                if g[u][v] == ' ':
                    g[u][v] = '1'
                elif g[u][v].isdigit():
                    g[u][v] = str(int(g[u][v]) + 1)
                x, y = u, v
                r += 1
            print(show(g)) 
            print(u, v)
    elif n == 1:
        x, y = 1, 0
        dy = 1
        r = 0
        while r < k:
            u, v = x, y + dy
            if v in (0, m + 1):
                dy *= -1
                
            else:                
                if g[u][v] == ' ':
                    g[u][v] = '1'
                elif g[u][v].isdigit():
                    g[u][v] = str(int(g[u][v]) + 1)
                x, y = u, v
                r += 1
            print(x, y)
            print(show(g)) 
    else:
        x, y = 0, 0
        dx, dy = (1, 1) 
        r = 0
        while r < k:
            u, v = x + dx, y + dy
            if (u, v) in ((0, 0), (0, m + 1), (n + 1, 0), (n + 1, m + 1)):
                dx, dy = -dx, -dy
                r += 1
            elif v in (0, m + 1):
                dy *= -1
                r += 1
            elif u in (0, n + 1):
                dx *= -1
                r += 1
            else:               
                if g[u][v] == ' ':
                    g[u][v] = '1'
                elif g[u][v].isdigit():
                    g[u][v] = str(int(g[u][v]) + 1)
                x, y = u, v
            print(u, v)
            print(show(g))     
    return '\n'.join(''.join(x) for x in g)

print(solve(11,1,14))
    

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: