#P1921. 无人机巡逻

无人机巡逻

题目描述

一块地用一个从 00 开始索引的二维二进制矩阵 blockblock 表示,其中 00 表示空闲地块,11 表示放有障碍物的地块。在每个测试用例中,地的左上角永远是空闲的。一架无人机面向右侧,从左上角开始巡逻。无人机将一直前进,直到抵达的边界或遇到障碍物地块时,无人机将会顺时针旋转 9090 度并重复以上步骤,初始位置和无人机飞过的地块都会被它巡逻。

若无人机可以持续飞行下去,输出被巡逻到的地块数量。

输入描述

第一行输入两个整数n,m(1n,m300)n,m(1\le n,m\le 300),分别表示二维网络的行数和列数。

接下来nn行,每行输入mm个整数a1,a2,...am(0ai1)a_1,a_2,...a_m(0\le a_i\le 1),表示每个地块的状态,00表示空闲,11表示有障碍物。

数据保证左上角a[0][0]=0a[0][0]=0

输出描述

输出一个整数,表示无人机巡逻能覆盖的地块个数。

样例

输入

3 3
0 0 0
1 1 0
0 0 0

输出

7