1953: 无敌狗仔

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:2 解决:0

题目描述

hyf不同,Will很低调的,自从上次表白成功追到了SuperPPMM之后,Will那是相当相当低调――约会也是。不过,这次Will的传统理念算是被颠覆了……

WillPPMM正在浪漫的约会呢,Will猛然得到最新消息,有若干狗仔团队正闻讯蜂拥而来(Will毕竟还是蛮有名气的嘛)……

Will真是不理解现在这些人对八卦的渴望怎么那么大,连保密工作做的这么好的Will都未能幸免,这真是……

算了,别扯了,先溜吧,被狗仔队逮到可不好,但是,今天晚上和PPMM的浪漫约会Will真不想撤,那么就能呆多久呆多久吧,Will希望在不会被抓的前提下和MM呆尽量久的时间。

城市可以看做是NN列的方格,每一个格子会是一个建筑物,一片空地,一个狗仔队的窝点,或者是Will的家。我们认为两个格子如果有相同的边,那么就是相邻的。城市里居民都是良民,每次走的时候,只会走相邻的格子。显然的,私闯民宅可不好,所以不论是谁都不会闯到建筑物里的……由于要保护MM Will每一秒至多走S步,S可能很大,因为这是爱情的力量!

Will得知狗仔队将至的消息时,Will在和MM约会,而狗仔队都在各自窝点。随着时间的前进,每一秒都会按照如下的顺序发生着一些事件:

*) 如果Will还在约会地点,那么他可以选择现在这一秒是和MM浪漫,还是开始逃跑――如果是继续浪漫,那么这一秒Will是不会移动的,如果逃跑,那么接下来Will可以在城市里移动不超过S步――当然的,开始逃跑了怎么还会有心思浪漫呢?所以一旦离开了,Will就会保护着MM一直不停的逃跑。当然了,如果在某个位置遇到了狗仔队,那么可怜的Will就要悲剧了……

*) Will决定或者移动完毕之后,所有的狗仔队会向四周更远的格子移动一步――当然,也只会走到空地上,并且最邪恶的是一旦狗仔队走到了一个格子,就会派一个狗仔留守在那里――或者可以这么说,如果格子ab是相邻的空地,并且在前一秒狗仔队占据了格子a,那么这一秒过后,ab都将被狗仔队占据。最开始的时候,狗仔队占据了所有狗仔窝点所在的格子。

狗仔和Will都不能走出城市。并且,显然的,根据规则,Will继续和MM浪漫的时间,必然是一个整数秒。

狗仔队是无法占领Will的家的,所以Will只要回到家里就安全啦!现在Will想知道如果要能够安全回到家,那么最多他还能和MM浪漫多长时间呢?

 

输入

第一行两个整数,NS

接下来N行每行N个字符描述每个格子的具体情况

T 这个格子是一个建筑物

G 这是一块空地

M 这是WillMM浪漫的地方,当然也是个空地

D 这是Will的家

H 这是一个狗仔队的窝点

输出

一行一个整数,表示Will最多还能和MM浪漫多长时间,如果Will不可能回到家了,那么就输出-1,否则显然答案是非负整数。

 

约定:

地图中有且仅有一个M,一个D,并且至少有一个H。同样的,好保证一定存在一条路能够从G走到M(否则Will是怎么去和MM约会的呢?)

 

样例输入 复制

7 3
TTTTTTT
TGGGGGT
TGGGGGT
MGGGGGD
TGGGGGT
TGGGGGT
THHHHHT

样例输出 复制

1

提示

mecho.in

7 3

TTTTTTT

TGGGGGT

TGGGGGT

MGGGGGD

TGGGGGT

TGGGGGT

TGHHGGT

mecho.out

2

 

数据规模:

对于30%的数据满足S=1

对于50%的数据满足N≤60

对于100%的数据1≤N≤800  1≤S≤1000