#agc043c. [agc043_c]Giant Graph

[agc043_c]Giant Graph

問題文

NN 頂点の、それぞれ M1M_1, M2M_2, M3M_3 辺の単純な無向グラフ XX, YY, ZZ が与えられます。 頂点をそれぞれ x1,x2,dots,xNx_1, x_2, \\dots, x_N, y1,y2,dots,yNy_1, y_2, \\dots, y_N, z1,z2,dots,zNz_1, z_2, \\dots, z_N とします。 XX, YY, ZZ の辺はそれぞれ (xai,xbi)(x_{a_i}, x_{b_i}), (yci,ydi)(y_{c_i}, y_{d_i}), (zei,zfi)(z_{e_i}, z_{f_i}) です。

X,Y,ZX, Y, Z を元に N3N^3 頂点の無向グラフ WW を作ります。 X,Y,ZX, Y, Z から 11 つずつ頂点を選ぶ方法は N3N^3 通りありますが、これがそれぞれ WW の頂点と一対一に対応します。xi,yj,zkx_i, y_j, z_k を選ぶことに対応する頂点を (xi,yj,zk)(x_i, y_j, z_k) で表すこととします。

WW の辺を、以下の手順に沿って張ります。

  • XX の各辺 (xu,xv)(x_u, x_v)、及び全ての w,lw, l について、(xu,yw,zl)(x_u, y_w, z_l), (xv,yw,zl)(x_v, y_w, z_l) 間に辺を張る
  • YY の各辺 (yu,yv)(y_u, y_v)、及び全ての w,lw, l について、(xw,yu,zl)(x_w, y_u, z_l), (xw,yv,zl)(x_w, y_v, z_l) 間に辺を張る
  • ZZ の各辺 (zu,zv)(z_u, z_v)、及び全ての w,lw, l について、(xw,yl,zu)(x_w, y_l, z_u), (xw,yl,zv)(x_w, y_l, z_v) 間に辺を張る

そして、WW の頂点 (xi,yj,zk)(x_i, y_j, z_k) の重みを $1,000,000,000,000,000,000^{(i +j + k)} = 10^{18(i + j + k)}$ とします。WW独立集合のうち、頂点の重みの総和の最大値を求めてください。そしてそれを 998,244,353998,244,353 で割った余りを出力してください。

制約

  • 2leqNleq100,0002 \\leq N \\leq 100,000
  • 1leqM1,M2,M3leq100,0001 \\leq M_1, M_2, M_3 \\leq 100,000
  • 1leqai,bi,ci,di,ei,fileqN1 \\leq a_i, b_i, c_i, d_i, e_i, f_i \\leq N
  • XX, YY, ZZ は単純、つまり自己ループや多重辺は存在しない

入力

入力は以下の形式で標準入力から与えられる。

NN M1M_1 a1a_1 b1b_1 a2a_2 b2b_2 vdots\\vdots aM1a_{M_1} bM1b_{M_1} M2M_2 c1c_1 d1d_1 c2c_2 d2d_2 vdots\\vdots cM2c_{M_2} dM2d_{M_2} M3M_3 e1e_1 f1f_1 e2e_2 f2f_2 vdots\\vdots eM3e_{M_3} fM3f_{M_3}

出力

重みの総和の最大値を 998,244,353998,244,353 で割った余りを出力せよ。


入力例 1

2
1
1 2
1
1 2
1
1 2

出力例 1

46494701

(x2,y1,z1)(x_2, y_1, z_1), (x1,y2,z1)(x_1, y_2, z_1), (x1,y1,z2)(x_1, y_1, z_2), (x2,y2,z2)(x_2, y_2, z_2) を選ぶ場合が最適です。 答えは 3times1072+101083 \\times 10^{72} + 10^{108}998,244,353998,244,353 で割ったあまりの 46,494,70146,494,701 です。


入力例 2

3
3
1 3
1 2
3 2
2
2 1
2 3
1
2 1

出力例 2

883188316

入力例 3

100000
1
1 2
1
99999 100000
1
1 100000

出力例 3

318525248