#P10330. crack

crack

crack

题目描述

你有一个 nnmm 列的网格,每个格子可以是坚硬的或是脆弱的。网格中恰有一个关键点,位于脆弱的格子上。

一个脆弱的格子可能会裂开,只需要同时满足下列条件:

  • 其左右两格子均存在(即在网格内)且没有裂开
  • 其上下两格子均存在(即在网格内)且没有裂开

注意到裂开的操作是连锁反应,反应将一直进行直到稳定。

你希望关键点最终裂开,为此你可以将一些坚硬的格子敲成脆弱的,你想要知道最少敲几个格子可以满足要求。

输入格式

一行两个整数 n,mn,m

接下来 nn 行,每行 mm 个字符,描述这个网格。

字符共有三种。#表示坚硬的格子,+表示脆弱的格子,P表示关键点。

输出格式

一行一个整数表示答案。

样例输入

3 3
+#+
#P#
+#+

样例输出

2

数据范围

本题设有subtask。

对于全部数据,1n,m401\leq n,m\leq 40

subtask1(20),坚硬的格子个数不超过 1515

subtask2(30),1n,m101\leq n,m\leq 10

subtask3(50),无特殊限制。