MOD = 998244353i64 n = read_line.to_i cs = Array.new(n) { read_line.chars } fs = Array.new(n) do |i| Array.new(i + 1) do |j| cs[i - j][j] end end ss = Array.new(n) do |i| Array.new(i + 1) do |j| cs[n - 1 - (i - j)][n - 1 - j] end.reverse end if fs[0][0] != ss[0][0] puts 0 exit end dp = Array.new(1) { [1i64] } 1.upto(n - 1) do |i| dp2 = Array.new(i + 1) { Array.new(i + 1, 0i64) } i.times do |j| i.times do |k| if fs[i][j] == ss[i][k] dp2[j][k] += dp[j][k] dp2[j][k] %= MOD end if fs[i][j + 1] == ss[i][k] dp2[j + 1][k] += dp[j][k] dp2[j + 1][k] %= MOD end if fs[i][j] == ss[i][k + 1] dp2[j][k + 1] += dp[j][k] dp2[j][k + 1] %= MOD end if fs[i][j + 1] == ss[i][k + 1] dp2[j + 1][k + 1] += dp[j][k] dp2[j + 1][k + 1] %= MOD end end end dp = dp2 end puts n.times.sum { |i| dp[i][i] } % MOD