AT_abc317_h [ABC317Ex] Walk

Description

[problemUrl]: https://atcoder.jp/contests/abc317/tasks/abc317_h 頂点に $ 1 $ から $ N $ までの番号がついた $ N $ 頂点の有向グラフがあります。グラフに多重辺は存在しませんが自己ループは存在する可能性があります。また、グラフに含まれる全ての辺は次の条件を満たします。 - 辺が頂点 $ s $ から頂点 $ t $ に向けて張られているとする。このとき $ s,\ t $ は $ 0\ \leq\ t\ -\ s\leq\ 2 $ と $ t\ =\ 1 $ の少なくとも一方を満たす。 グラフの辺の有無は長さ $ N $ の数列 $ A,B,C,D $ によって表されます。$ A,\ B,\ C,\ D $ の各要素は次の意味を持ちます。(以下では $ A $ の $ n $ 番目の要素を $ A_n $ と表します。$ B_n,\ C_n,\ D_n $ も同様です) - $ A_n $ は頂点 $ n $ から頂点 $ n $ に向けて辺が張られていたら $ 1 $ 、そうでなければ $ 0 $ - $ B_n $ は頂点 $ n $ から頂点 $ n+1 $ に向けて辺が張られていたら $ 1 $ 、そうでなければ $ 0 $ (ただし $ B_N\ =\ 0 $) - $ C_n $ は頂点 $ n $ から頂点 $ n+2 $ に向けて辺が張られていたら $ 1 $ 、そうでなければ $ 0 $ (ただし $ C_{N-1}\ =\ C_N\ =\ 0 $) - $ D_n $ は頂点 $ n $ から頂点 $ 1 $ に向けて辺が張られていたら $ 1 $ 、そうでなければ $ 0 $ (ただし $ D_1\ =\ A_1 $) 与えられたグラフにおいて、頂点 $ 1 $ が始点、頂点 $ N $ が終点であり $ K $ 辺からなる walk の個数を $ 998244353 $ で割った余りを求めてください。 ここで「頂点 $ 1 $ が始点、頂点 $ N $ が終点であり $ K $ 辺からなる walk 」とは、頂点の列 $ v_0\ =\ 1,\ v_1,\ \dots,\ v_K\ =\ N $ であって、各 $ i $ $ (0\ \leq\ i\ \lt\ K) $ について頂点 $ v_i $ から頂点 $ v_{i\ +\ 1} $ へ向かう辺があるものを言います。2 つの walk は列として異なる時に別々に数えます。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ K $ $ A_1 $ $ A_2 $ $ \dots $ $ A_N $ $ B_1 $ $ B_2 $ $ \dots $ $ B_N $ $ C_1 $ $ C_2 $ $ \dots $ $ C_N $ $ D_1 $ $ D_2 $ $ \dots $ $ D_N $

Output Format

頂点 $ 1 $ が始点、頂点 $ N $ が終点であり $ K $ 辺からなる walk の個数を $ 998244353 $ で割った余りを出力せよ。

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 5\ \times\ 10^4 $ - $ 1\ \leq\ K\ \leq\ 5\ \times\ 10^5 $ - $ A_i,\ B_i,\ C_i,\ D_i\ \in\ \lbrace\ 0,\ 1\ \rbrace $ - $ A_1\ =\ D_1 $ - $ B_N\ =\ C_{N-1}\ =\ C_N\ =\ 0 $ ### Sample Explanation 1 与えられるグラフを図示すると次のようになります。 !\[image\](https://img.atcoder.jp/abc317/2106e1b4faaa87d208ed3e3a275cda1b.jpg) 条件を満たす walk は次の $ 6 $ 個です。 - $ 1,\ 1,\ 1,\ 3 $ - $ 1,\ 1,\ 2,\ 3 $ - $ 1,\ 1,\ 3,\ 3 $ - $ 1,\ 2,\ 3,\ 3 $ - $ 1,\ 3,\ 1,\ 3 $ - $ 1,\ 3,\ 3,\ 3 $