봄보니
시간 제한2초메모리 제한1024 MB
왼쪽 위에서 오른쪽 아래까지 오른쪽과 아래로만 이동하는 경로 중, 장애물을 피하고 먹은 사탕 숫자의 곱이 k로 나누어떨어지는 경로의 수를 998244353으로 나눈 나머지로 구합니다.
문제
이바는 사탕을 아주 좋아한다! 그녀 앞에는 사탕과 장애물로 가득 찬 격자판이 있다. 이바는 지금 격자판의 왼쪽 위 칸에 있고, 아래 방향과 오른쪽 방향으로만 움직여 오른쪽 아래 칸까지 간다. 이바가 있는 칸에는 장애물이 없다.
모든 칸에는 장애물이 있거나, 숫자가 적힌 사탕이 있다. 이바는 여행 중에 손에 넣은 사탕을 모두 먹고(첫 칸과 마지막 칸의 사탕도 포함), 먹은 사탕에 적힌 숫자를 모두 곱한다. 이바가 좋아하는 수는 이고, 먹은 사탕 숫자들의 곱이 로 나누어떨어지기를 원한다. 이런 경로가 몇 개인지 구하라. 경로 수가 매우 클 수 있으므로 으로 나눈 나머지를 구한다.
입력
첫 줄에 격자판의 크기 과 이바가 좋아하는 수 가 주어진다 (, ).
이어지는 개 줄에는 격자판의 각 행을 나타내는 개의 수가 주어진다 (). 이면 그 칸에는 장애물이 있다. 그렇지 않으면 이고, 그 칸에는 해당 숫자가 적힌 사탕이 있다.
출력
요구하는 수를 한 줄에 출력한다.
힌트
두 번째 예제에 대한 설명:
곱이 6으로 나누어떨어지는 경로는 세 가지다: (5, 2, 3, 3, 1), (5, 2, 3, 6, 1), (5, 7, 3, 6, 1).