Time Limits: 1000 ms Memory Limits: 65536 KB

Description

请你帮忙设计一个从城市M到城市Z的输油管道,现在已经把整个区域划分为R行C列,每个单元格可能是空的也可能是以下7种基本管道之一:
  ![img](data:image/JPG;base64,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)

油从城市M流向Z,‘+’型管道比较特殊,因为石油必须在两个方向(垂直和水平)上传输,如下图所示:

![img](data:image/JPG;base64,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)

现在恐怖分子弄到了输油管道的设计图,并把其中一个单元格中的管道偷走了,请你帮忙找到偷走的管道的位置以及形状。

Input

第一行包含两个整数R和C(1<=R,C<=25)。
  接下来R行每行C个字符描述被偷之后的形状,字符分为以下三种:
  (1)‘.’表示空;
  (2)字符‘|’(ASCII为124)、‘-’、‘+’、‘1’、‘2’、‘3’、‘4’描述管道的形状;
  (3)‘M’和‘Z’表示城市,两个都是只出现一次。
  输入保证石油的流向是唯一的,只有一个管道跟M和Z相连,除此此外,保证没有多余的管道,也就是说所有的管道在加进被偷的管道后一定都会被用上。
  输入保证有解而且是唯一的。

Output

输出被偷走的管道的行号和列号以及管道的类型。

Sample Input

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
输入1:
3 7
.......
.M-.-Z.
.......

输入2:
3 5
..1-M
1-+..
Z.23.

输入3:
6 10
Z.1----4..
|.|....|..
|..14..M..
2-+++4....
..2323....
..........

Sample Output

1
2
3
4
5
6
7
8
输出1:
2 4 -

输出2:
2 4 4

输出3:
3 3 |

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#include <bits/stdc++.h>
using namespace std;
const int MAXRC = 25+5;
const int cmpdis[4][2] = { {0, -1}, {1, 0}, {0, 1}, {-1, 0} };
const int cmppipe[5][2] = { {0, 0}, {1, 2}, {3, 2}, {3, 0}, {1, 0} };

char g[MAXRC][MAXRC];

int r, c, sx, sy, fx, fy;

inline bool SF (int x, int y) {
return (x == fx && y == fy || x == sx && y == sy);
}

inline void check (int x, int y, int dis) {
int i=dis;
if ((g[x+1][y] == '|' || SF(x+1, y) || g[x+1][y] == '2' || g[x+1][y] == '3' || g[x+1][y] == '+') && (g[x-1][y] == '|' || SF(x-1, y) || g[x-1][y] == '1' || g[x-1][y] == '4' || g[x-1][y] == '+') && (g[x][y-1] == '-' || SF(x, y-1) || g[x][y-1] == '1' || g[x][y-1] == '2' || g[x][y-1] == '+') && (g[x][y+1] == '-' || SF(x, y+1) || g[x][y+1] == '4' || g[x][y+1] == '3' || g[x][y+1] == '+')) {
printf ("%d %d +\n", x, y);
exit (0);
}
if ((dis == 0)) {
int nx=x + cmpdis[i][0];
int ny=y + cmpdis[i][1];
if (g[nx][ny] == '-' || g[nx][ny] == '+' || g[nx][ny] == '1' || g[nx][ny] == '2' || SF (nx, ny)){
printf ("%d %d -\n", x, y);
exit(0);
}
}
if ((dis == 2)) {
int nx=x + cmpdis[i][0];
int ny=y + cmpdis[i][1];
if (g[nx][ny] == '-' || g[nx][ny] == '+' || g[nx][ny] == '3' || g[nx][ny] == '4' || SF (nx, ny)){
printf ("%d %d -\n", x, y);
exit(0);
}
}
if ((dis == 1)) {
int nx=x + cmpdis[i][0];
int ny=y + cmpdis[i][1];
if (g[nx][ny] == '|' || g[nx][ny] == '+' || g[nx][ny] == '3' || g[nx][ny] == '2' || SF (nx, ny)){
printf ("%d %d |\n", x, y);
exit(0);
}
}
if ((dis == 3)) {
int nx=x + cmpdis[i][0];
int ny=y + cmpdis[i][1];
if (g[nx][ny] == '|' || g[nx][ny] == '+' || g[nx][ny] == '1' || g[nx][ny] == '4' || SF (nx, ny)){
printf ("%d %d |\n", x, y);
exit(0);
}
}
if (dis == 3) {
if (g[x][y+1] == '-' || g[x][y+1] == '+' || g[x][y+1] == '3' || g[x][y+1] == '4' || SF (x, y+1)) {
printf ("%d %d 1\n", x, y);
exit(0);
}
}
if (dis == 0) {
if (g[x+1][y] == '|' || g[x+1][y] == '+' || g[x+1][y] == '2' || g[x+1][y] == '3' || SF (x+1, y)) {
printf ("%d %d 1\n", x, y);
exit(0);
}
}
if (dis == 1) {
if (g[x][y+1] == '-' || g[x][y+1] == '+' || g[x][y+1] == '3' || g[x][y+1] == '4' || SF (x, y+1)) {
printf ("%d %d 2\n", x, y);
exit(0);
}
}
if (dis == 0) {
if (g[x-1][y] == '|' || g[x-1][y] == '+' || g[x-1][y] == '1' || g[x-1][y] == '4' || SF (x-1, y)) {
printf ("%d %d 2\n", x, y);
exit(0);
}
}
if (dis == 2) {
if (g[x-1][y] == '|' || g[x-1][y] == '+' || g[x-1][y] == '1' || g[x-1][y] == '4' || SF (x-1, y)) {
printf ("%d %d 3\n", x, y);
exit(0);
}
}
if (dis == 1) {
if (g[x][y-1] == '-' || g[x][y-1] == '+' || g[x][y-1] == '1' || g[x][y-1] == '2' || SF (x, y-1)) {
printf ("%d %d 3\n", x, y);
exit(0);
}
}
if (dis == 2) {
if (g[x+1][y] == '|' || g[x+1][y] == '+' || g[x+1][y] == '2' || g[x+1][y] == '3' || SF (x+1, y)) {
printf ("%d %d 4\n", x, y);
exit(0);
}
}
if (dis == 3) {
if (g[x][y-1] == '-' || g[x][y-1] == '+' || g[x][y-1] == '1' || g[x][y-1] == '2' || SF (x, y-1)) {
printf ("%d %d 4\n", x, y);
exit(0);
}
}
return;
}

void dfs (int x, int y, int dis) {
if (dis == -1) {
for (int i=0; i<4; i++) {
int nx=x + cmpdis[i][0];
int ny=y + cmpdis[i][1];
if (nx < 1 || nx > r || ny < 1 || ny > c) continue;
if (g[nx][ny] == '.') {
check(nx, ny, i);
continue;
}
if (1 <= g[nx][ny] - '0' && g[nx][ny] - '0' <=4) {
dfs (nx, ny, cmppipe[g[nx][ny] - '0'][i%2]);
return;
}
else {
dfs (nx, ny, i);
return;
}
}
}
int nx=x + cmpdis[dis][0];
int ny=y + cmpdis[dis][1];
if (g[nx][ny] == '.') {
check(nx, ny, dis);
}
if (1 <= g[nx][ny] - '0' && g[nx][ny] - '0' <=4) {
dfs (nx, ny, cmppipe[g[nx][ny] - '0'][dis%2]);
return;
}
else {
dfs (nx, ny, dis);
return;
}
return;
}

int main() {
cin>>r>>c;
for (int i=1; i<=r; i++) {
for (int j=1; j<=c; j++) {
char ch;
cin >>ch;
g[i][j]=ch;
if (g[i][j] == 'M') {
sx=i;
sy=j;
}
if (g[i][j] == 'Z') {
fx=i;
fy=j;
}
}
}
dfs (sx,sy,-1);
return 0;
}