#978. Cow Tipping

Cow Tipping

农场主约翰偶尔会遇到一些无聊的青少年,他们晚上去他的农场,给他的牛倾倒。一天早上,他醒来发现事情又发生了——他的n2n^2奶牛开始在一个完美的n×nn×n平方网格安排1n10(1 \leq n \leq 10)夜间放牧,但他发现其中一些牛现在被翻了。

幸运的是,农场主约翰用拖拉机和铲车上的零件制造了一台很好的机器,即能一次翻转大组奶牛的30003000型奶牛解封器,帮助他尽可能快地把所有的奶牛脚朝下放回。他可以将该机器应用于他的奶牛网格中的任何“左上矩形”——包含左上角奶牛的矩形子网格。当他这样做时,机器会翻转这个矩形中的每头奶牛,将倾斜的奶牛放回它们的脚上,但不幸的是,也会翻转已经脚朝下的奶牛!换句话说,机器“切换”矩形中每头奶牛的状态。

农场主约翰认为,通过将他的机器应用到适当的矩形集合中足够多次,他最终可以将所有的奶牛恢复到它们正确的、未翻转的状态。请帮助他确定完成此操作所需机器的最小应用程序数。

请注意,将机器应用到同一个矩形两次是没有意义的,因为这不会对矩形中的奶牛产生任何影响。因此,您应该只考虑将机器应用于左上角的每个矩形,可能只有一次。

输入格式

输入的第一行是整数nn

后面nn行中的每一行都包含一个由nn个字符组成的字符串,每个字符分别为00(表示头向上的奶牛)或11(表示头向下的奶牛)。

输出格式

请输出农场主约翰需要应用奶牛解封器30003000的最小次数,以恢复他所有奶牛的脚朝下。

样例

样例输入

3
001
111
111

样例输出

2

数据范围与提示

  • 时间限制:1s1\mathrm{s}
  • 空间限制:256MB256\mathrm{MB}