U266329 All Perfect!

题目背景

子曰:FC而不AP则罔,AP而不理论则殆。

题目描述

Op(没错就是那个整天玩音游被虐到爆的屑),今天闲的,单指打音游,当然,遇到多押怎么办呢?没事,他会甩狙,如果两个 tap 之间没有间隔,他就可以进行甩狙,但三个吗……就不太行了。例如: ``` ##.. .... .#.# .... .### ``` (用 `#` 代表 tap) 这种情况下,Op 最多只能打上 $2+1+2=5$ 个 tap。 但铺面不只有 tap 音符,还有 hold 音符! Op 只能同时按住 $1$ 个 hold 音符,且按 hold 音符的中间部分时,不能按其它任何的 tap 和 hold。如: ``` .... ##.* ##.* ##.* ##.* ..#% ``` (用 `%` 代表 hold 头部,`*` 代表 hold 中部) 这种情况下如果打 hold 的话(hold 只算一个音不算好多个),那么只能打 $(6,3)$ 的一个 tap 和 $(6,4)$ 的一个 hold 头,只能点击两个音。但是如果选择放弃 hold(hold 必须点完才算打上),则可以打上 $(6,3)$ 的一个 tap 和$(2,1)\sim(5,2)$ 的 $8$ 个音符,总计 $9$ 个,是最优情况。 你以为完了吗? 不不不,还有我们的 drag 音符。当它与 tap 或 hold 头构成双压是同样可以甩狙。且它是唯一可以放在 hold 中(hold 头不能)的音符。如: ``` ...-- ##*.. --*.. ##*.. ..-.. ##%## ``` (用 `-` 表示 drag) 这种情况下中间 hold 最好还是放弃,但是 hold 中的 drag 还是可以点击的,最优解是 $6$ 行四选二的 $2$ 加上 $5$ 行的 drag 加上前面的$2\times4=8$个音符,最多可以点上 $11$ 个音符。 这次就不考虑flick这种音符啦放轻松,这种音符会放到[升级版](https://www.luogu.com.cn/problem/U266672)里。

输入格式

第一行,$n,m$。 接下来,输入一个 $n$ 行 $m$ 列的音游铺面。

输出格式

输出 Op 单指最多能点上的音符数量。

说明/提示

hold 头可以被甩狙点上,但是hold必须点完才算点上一个音符。 如果按住了 hold,进行甩狙 hold 会断。只要手指离开 hold 即使出去甩狙 drag 也会断,但 drag 在 hold 里不会。 两个音符必须紧挨才可以甩狙。 无论什么音符,甩狙都只能点上两个。(单指三押还是别了吧) ____ 对于 $100\%$ 的数据,$1\le n\le30,1\le m\le10$。