一只蚱蜢在一片花田里。花田包含 $N \times N$ 朵花,排列成 $N$ 行 $N$ 列。对于花田中的每朵花,我们知道它有多少片花瓣。
蚱蜢最初位于第 $R$ 行第 $C$ 列的花上。它的目标是在遵守以下规则的前提下,尽可能多地访问花朵:
它只能跳到相邻的行或列。如果它跳到相邻的行,它必须跳过至少两列;如果它跳到相邻的列,它必须跳过至少两行。
换句话说,它可以从花朵 $(r_1, c_1)$ 跳到花朵 $(r_2, c_2)$,如果:
- $|r_1 - r_2| = 1$ 且 $|c_1 - c_2| > 1$
- $|c_1 - c_2| = 1$ 且 $|r_1 - r_2| > 1$
下一朵花的花瓣数量必须严格大于上一朵花的花瓣数量。
编写一个程序,计算蚱蜢最多可以访问的花朵数量。
输入格式
第一行包含一个整数 $N$ ($1 \le N \le 1500$),表示花田的大小。
第二行包含两个整数 $R$ ($1 \le R \le N$) 和 $C$ ($1 \le C \le N$),表示蚱蜢的初始位置。
接下来的 $N$ 行,每行包含 $N$ 个由空格隔开的正整数,每个数均小于 $1\,000\,000$,表示每朵花的花瓣数量。
输出格式
输出一个整数,表示蚱蜢最多可以访问的花朵数量。
数据范围
- 对于 $50\%$ 的测试数据,满足 $N \le 100$。
- 对于 $80\%$ 的测试数据,满足 $N \le 1000$。
样例
输入样例 1
4 1 1 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7
输出样例 1
4
输入样例 2
5 3 3 20 16 25 17 12 11 13 13 30 17 15 29 10 26 11 27 19 14 24 22 23 21 28 18 13
输出样例 2
21