配点 : 600 点
問題文
キャベツ農家の高橋君は、品種 1 から品種 N までの N 種類のキャベツを育てました。高橋君は品種 i (1≤i≤N) のキャベツを Ai 個持っています。ここで、 すべてのキャベツは区別できます。
キャベツの卸先として会社 1 から会社 M までの M 個の会社があり、会社 j (1≤j≤M) からは Bj 個のキャベツの注文を受けています。
出荷できるキャベツの品種は会社ごとに異なっており、すべての i,j の組 (1≤i≤N,1≤j≤M) について
- ci,j=1 のとき、品種 i のキャベツを会社 j に出荷できます。
- ci,j=0 のとき、品種 i のキャベツを会社 j に出荷できません。
高橋君は、すべてのキャベツの出荷先を適切に決めることで、すべての会社 j (1≤j≤M) にキャベツを Bj 個以上出荷することができれば「キャベツ名人」の称号を得ることができます。
すぬけ君は、高橋君がどのようにキャベツの出荷先を決めても「キャベツ名人」の称号を得られないように 0 個以上のキャベツを選んで食べることにしました。キャベツが苦手なすぬけ君は、前述の条件のもとで食べるキャベツの個数が 最少 となるように食べるキャベツの組み合わせを選択します。
すぬけ君が食べるキャベツの個数、およびすぬけ君が食べるキャベツの選び方が何通りあるかを 998244353 で割ったあまりの 2 つを出力してください。
ただし、 キャベツの選び方が異なるとは、一方の選び方で食べられたがもう一方の選び方で食べられていないようなキャベツが存在することをいいます。ここで、異なる 2 つのキャベツは 品種が同じでも区別される ことに注意してください。
制約
- 1≤N≤20
- 1≤M≤104
- 1≤Ai≤105
- 1≤Bj≤105
- ci,j∈{0,1}
- 任意の 1≤j≤M に対して、ある 1≤i≤N が存在して ci,j=1 が成り立つ
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N M
A1 A2 … AN
B1 B2 … BM
c1,1 c1,2 … c1,M
c2,1 c2,2 … c2,M
⋮
cN,1 cN,2 … cN,M
出力
すぬけ君が食べるキャベツの個数 X と、すぬけ君が食べるキャベツの選び方が何通りあるかを 998244353 で割ったあまり Y を、この順番に空白区切りで出力せよ。
X Y
高橋君がキャベツ名人になれないようにするために、すぬけ君が食べるキャベツの個数は 2 個です。
また、便宜上 「品種 i の j 番目のキャベツ」を (i,j) のように表したとき、すぬけ君が食べるキャベツの組み合わせとして考えられるものは以下の 6 通りです。
- (1,1),(1,2)
- (1,1),(2,1)
- (1,1),(2,2)
- (1,2),(2,1)
- (1,2),(2,2)
- (2,1),(2,2)
すぬけ君がキャベツを 1 個も食べなくても、高橋君がキャベツ名人になることができない場合もあります。
このとき、すぬけ君が食べるキャベツの個数は 0 個であり、すぬけ君が食べるキャベツの組み合わせとして考えられるのは、「どのキャベツも食べない」という 1 通りのみです。
すぬけ君が食べるキャベツの選び方が何通りあるかについては、 998244353 で割ったあまりを出力することに注意してください。