#P1273. 清理通道

清理通道

问题描述

给出一个由各种障碍物组成的二维矩阵,各种障碍物由不同的大写字母表示。我们要从矩阵第一行到最后一行打出一条通道,每次清除障碍只能清除一种障碍物,并且并且它们必须要彼此相连接,那么至少需要几次可以打通一条通道?图样如下:

AABBCCD
AFFBGGD
IIJBKKD
MNNOOPD
QQRRSST

比如在这张地图中,可以先打掉最右边的D区域,然后再打通T区域,这样就只用两次就可以打通道路(道路是可以拐弯的,不一定要是一条直线)。

【输入格式】

第一行有两个整数,m和n(0<m,n<21);下面m行,每行n个字母。

【输出格式】

一个整数,程文打通道路用功力的最少的次数。

【样例输入】

5 7
AABBCCD
AFFBGGD
IIJBKKD
MNNOOPD
QQRRSST

【样例输出】

2