先知
题号:NC279580
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

n*m大小的二维矩阵中每个格子的初始高度为 a_{ij}
俗话说万丈高楼平地起...
你决定使用魔法:对于每个格子 a_{ij} 如果其四周(上下左右)均有格子,且四周格子高度均大于等于 a_{ij} 时实际高度会 +1,即 a_{ij} = a_{ij} + 1
你将会夜以继日充不停息,从上到下,从左到右遍历整个矩阵对于每个格子均使用一次魔法
但是,慢慢的,你好像发现时间足够长久后,貌似整个矩阵高度均不会发生变化
求最终矩阵的形态;为了输出方便,请输出全部 a_{ij} 的和以及 a_{ij} 的异或和

输入描述:

第一行输入 nm 两个整数表示 nm列的矩阵
接下来 n 行,每行 m 个 a_{ij} 表示初始平地的高度
1\le n,m \le 2 × 10^3; 1\le a_{ij} \le 1 × 10^9

输出描述:

输出一行两个整数
分别表示最终状态下 a_{ij} 的和 以及 a_{ij} 的异或和
示例1

输入

复制
4 4
2 4 2 2
3 2 2 2
2 2 2 2
2 2 2 2

输出

复制
40 0

说明

第一次遍历:
遍历到第 2 行第 2 列的数字2
有2<=min(4,3,2,2),故变为
2 4 2 2
3 3 2 2
2 2 2 2
2 2 2 2
遍历到第 2 行第 3 列的数字2,变为
2 4 2 2
3 3 3 2
2 2 2 2
2 2 2 2
遍历到第 3 行第 2 列的数字2,变为
2 4 2 2
3 3 3 2
2 3 2 2
2 2 2 2
遍历到第 3 行第 3 列的数字2,变为
2 4 2 2
3 3 3 2
2 3 3 2
2 2 2 2

第二次遍历:
遍历到第 2 行第 2 列的数字3
有3<=min(4,3,3,3),故变为
2 4 2 2
3 4 3 2
2 3 3 2
2 2 2 2

此后不会有任何改变
和为 2+4+2+2+3+4+3+2+2+3+3+2+2+2+2+2=40
异或和为 2^4^2^2^3^4^3^2^2^3^3^2^2^2^2^2=0
示例2

输入

复制
3 3
3 3 3
3 1 3
3 3 3

输出

复制
28 4

说明

最终结果:
3 3 3
3 4 3
3 3 3
示例3

输入

复制
2 4
1 1 1 1
1 1 1 1

输出

复制
8 0
示例4

输入

复制
3 5
5 5 5 5 5
5 1 2 3 5
5 5 5 5 5

输出

复制
78 6

备注:

注:a_{ij} \le 1 × 10^9仅限制初始状态,中间结果可能不满足该条件