import pypyjit pypyjit.set_param("max_unroll_recursion=-1") MOD = 998244353 N = int(input()) C = [input() for _ in range(N)] memo = [[[[-1 for _ in range(N)] for _ in range(N)] for _ in range(N)] for _ in range(N)] def f(y,x,yy,xx): if(y + x == N-1):return y == yy if(memo[y][x][yy][xx] != -1):return memo[y][x][yy][xx] ret = 0 if(C[y+1][x] == C[yy-1][xx]): ret += f(y+1,x,yy-1,xx) ret %= MOD if(C[y+1][x] == C[yy][xx-1]): ret += f(y+1,x,yy,xx-1) ret %= MOD if(C[y][x+1] == C[yy-1][xx]): ret += f(y,x+1,yy-1,xx) ret %= MOD if(C[y][x+1] == C[yy][xx-1]): ret += f(y,x+1,yy,xx-1) ret %= MOD memo[y][x][yy][xx] = ret return ret if(C[0][0] == C[N-1][N-1]): print(f(0,0,N-1,N-1)) else: print(0)