在一个村庄里,有 $n$ 个村民,编号为 $1, 2, \dots, n$。每个村民都养了一只狗,狗要么是健康的,要么是患病的。
有一天(记为第 0 天),一个人来到村庄,告诉所有村民一个令人不快的事实:村里至少有一只狗是患病的。
在第 $t$ 天($t \ge 1$),每个村民 $i$ 都会检查所有满足 $G_{i,j} = 1$ 的村民 $j$ 的狗。所有的 $G_{i,j}$ 值都是预先给定的,并且所有村民都知道。对于每一只被检查的狗,村民都能得知它是健康的还是患病的。
检查结束后,如果一个村民能够推断出他自己的狗是患病的,他就会在当天下午射杀它。如果多于一个村民能得出这样的结论,他们会同时射杀自己的狗。所有村民都能立即听到枪声。此后,直到第二天之前,没有人会对狗做任何事情。
村民们除了上述提到的方式外,不会以任何其他方式交换信息。
- 如果第 $t$ 天发生了任何射击,上述过程以射击时间 $t$ 结束。
- 如果 $t < 2^n$,过程在第 $(t + 1)$ 天继续。
- 否则,过程以射击时间 $0$ 结束。
对于狗的健康状况的每一种 $(2^n - 1)$ 种可能性,我们记录两个值:射击时间和被射杀的狗的数量。求出这两个值的总和:所有记录的射击时间之和以及被射杀的狗的总数。由于这两个值可能非常大,请将它们对 $998\,244\,353$ 取模。
输入格式
第一行包含一个整数 $n$ ($1 \le n \le 3000$)。
接下来 $n$ 行,第 $i$ 行包含 $n$ 个不带空格的二进制数字:$G_{i,1}, G_{i,2}, \dots, G_{i,n}$ ($G_{i,j} \in \{0, 1\}, G_{i,i} = 0$)。
输出格式
在第一行,输出两个整数:所有记录的射击时间之和以及被射杀的狗的总数,均对 $998\,244\,353$ 取模。
样例
输入格式 1
2 01 00
输出格式 1
5 3
说明
对于第一个样例,有三种可能的配置:
- 狗 1 患病而狗 2 健康。村民 1 发现除了他自己的狗以外没有其他狗患病,因此他在第 1 天射杀了他的狗。
- 狗 2 患病而狗 1 健康。在第 1 天,村民 1 不确定他自己的狗的情况,所以他什么也没做。在第 2 天,村民 2 知道他的狗一定是患病的,否则村民 1 会在第 1 天射杀他的狗。
- 两只狗都患病。这种情况与第二种情况类似。
输入格式 2
2 01 10
输出格式 2
4 4