Bloqueio de Tela
time limit per test
10 segundos
memory limit per test
256 megabytes
input
entrada padrão
output
saída padrão

Petra decidiu instalar uma ROM customizada no seu celular. Fã de bloqueios de tela de deslizar, Petra ficou surpreso com as novas funcionalidades que a ROM trouxe para o seu aparelho, permitindo que matrizes de até 5x4 pontos sejam criadas! Petra então se perguntou o quão seguro seria utilizar um bloqueio de tela desse tamanho ao invés de um PIN tradicional, e decidiu saber mais sobre esse sistema incrementado de bloqueio de tela.

Depois de alguma experimentação, Petra descobriu que além da extensão de tamanho, cada ponto de uma padrão pode ser ou segurado (laranja) ou deslizado (azul), resultado de um ponto da matriz ficar pressionado por um intervalo maior de tempo. Isso significa que por exemplo um padrão que é 100% composto de pontos deslizados é diferente de uma padrão onde o primeiro ponto é segurado, e os outros deslizados.

Já a extensão da matriz de pontos é como no Android original, isto é, para que um movimento seja válido é necessário que o segmento de reta formado pelo ponto atual e o que se quer conectar não passe por um ponto que não faz parte do padrão. Um movimento em L por exemplo é aceito, assim como movimentos mais complicados.

Petra então quer saber quantas combinações diferentes são possíveis nessa ROM customizada para alguns tamanhos diferentes de padrão. Para fazer comparações, Petra determinou que apenas alguns pontos do padrão podem ter duas cores, e outros não, e como a quantidade de combinações pode ser muito grande, Petra também pediu para você dar as combinações $$$\mod{998244353}$$$.

Input

A primeira linha contém o tamanho do padrão dado por dois inteiros $$$N$$$ e $$$M$$$ $$$(1 \le N,M \le 5)$$$ com $$$\min(N, M) \le 4$$$.

Em seguida, seguem $$$N$$$ linhas, com $$$M$$$ inteiros $$$P$$$ $$$(1 \le P \le 2)$$$, sendo que P indica a quantidade de cores diferentes possíveis para aquele ponto. Um ponto $$$P=1$$$ não registra diferença entre ser acionado segurado ou não segurado, e já um ponto $$$P=2$$$ pode ser acionado segurado ou não segurado, formando padrões diferentes.

No final, seguem $$$A$$$ e $$$B$$$ $$$(1 \le A \le B \le NM)$$$, o tamanho mínimo e máximo do tamanho dos padrões.

Output

Imprima o número de combinações diferentes possíveis $$$\mod{998244353}$$$.

Examples

Input
2 2
1 1
1 1
2 2
Output
12
Input
2 2
2 1
1 1
2 2
Output
18
Input
3 3
1 1 1
1 1 1
1 1 1
4 9
Output
389112
Input
4 5
2 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
4 20
Output
9192018658