#include #include using namespace std; int main(){ using mint=atcoder::modint998244353; vector dy={1,0},dx={0,1}; int n; cin>>n; vector c(n); for (int i=0;i>c[i]; map,mint> mp; for (int i=0;i=0;d--){ for (int k1=0;k1<=d;k1++) for (int k2=0;k2<=d;k2++){ int j1=k1,i1=d-j1; int j2=n-1-k2,i2=2*(n-1)-d-j2; if (d==n-1&&j1!=j2) continue; mint val=mp[{i1,j1,i2,j2}]; if (val==0) continue; for (int d1=0;d1<2;d1++) for (int d2=0;d2<2;d2++){ int ni1=i1-dy[d1],nj1=j1-dx[d1]; int ni2=i2+dy[d2],nj2=j2+dx[d2]; if (!(0<=ni1&&ni1