#!/usr/bin/python3

n = int(input())
B = [list(input()) for i in range(n)]

def check():
    bulbs = []
    for i in range(n):
        for j in range(n):
            if B[i][j] == '?':
                for di, dj in [(-1, 0), (1, 0), (0, 1), (0, -1)]:
                    ii, jj = i, j
                    while True:
                        ii, jj = ii + di, jj + dj
                        if not (0 <= ii < n and 0 <= jj < n):
                            break
                        if B[ii][jj] == '?':
                            return 0
                        if not (B[ii][jj] in ['.', 'L']):
                            break
                        B[ii][jj] = 'L'

            if B[i][j] in '01234':
                neighbors = []
                if 0 < i:   neighbors.append(B[i-1][j])
                if i < n-1: neighbors.append(B[i+1][j])
                if 0 < j:   neighbors.append(B[i][j-1])
                if j < n-1: neighbors.append(B[i][j+1])
                if neighbors.count('?') != int(B[i][j]):
                    return 0

    return 0 if any('.' in l for l in B) else 1

print (check())
