// #include #include #include #include #include #include #include #include using namespace std; using ll = long long; using vi=vector; using vvi=vector; using vl=vector; using vvl=vector; #define rep(i,n) for(int i=0;i<(int)n;i++) #define rep1(i,n) for(int i=1;i<=(int)n;i++) #define INF (ll)(2e18) //#define MOD ((ll)1e9+7) #define MOD (998244353) const int di[]={0,1,-1,0}; const int dj[]={1,0,0,-1}; #define MAX 100000 ll dp[10][5][34]={0}; int main(){ int n;cin>>n; dp[0][0][0]=1; vector as(n),bs(n); rep(i,n)cin>>as[i]; rep(i,n){ cin>>bs[i]; //cout<=1;c--){ for(int u=4;u>=0;u--){ for(int d=33;d>=0;d--){ if(u-a<0)continue; if(d-b<0)continue; dp[c][u][d]+=dp[c-1][u-a][d-b]; dp[c][u][d]%=MOD; } } } } rep(i,exa.size()){ int a=exa[i],b=exb[i]; if(b!=0)continue; dp[9][4][33]+=dp[8][4-a][33-b]; dp[9][4][33]%=MOD; } cout<