| 记录编号 | 
        26834 | 
        评测结果 | 
        AAATT | 
    
    
        | 题目名称 | 
        576.管道系统 | 
        最终得分 | 
        60 | 
            
    
    
        | 用户昵称 | 
         lizhe | 
        是否通过 | 
        未通过 | 
    
    
        | 代码语言 | 
        Pascal | 
        运行时间 | 
        2.001 s  | 
    
    
        | 提交时间 | 
        2011-07-27 19:47:22 | 
        内存使用 | 
        0.12 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		program paipe;
const
  fangxiang:array['A'..'Z']of longint=(0,0,0,2,0,0,0,0,0,0,0,3,0,0,0,0,0,4,0,0,1,0,0,0,0,0);
  kind:array[0..14,1..4,1..4]of longint=(((0,0,0,0),(0,0,0,0),(0,0,0,0),(0,0,0,0)),
                                         ((0,1,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)),
                                         ((0,0,0,0),(0,0,0,0),(0,0,0,1),(0,0,1,0)),
                                         ((0,0,1,0),(0,0,0,0),(1,0,0,0),(0,0,0,0)),
                                         ((0,0,0,0),(0,0,1,0),(0,1,0,0),(0,0,0,0)),
                                         ((0,0,0,0),(0,0,0,1),(0,0,0,0),(0,1,0,0)),
                                         ((0,0,0,1),(0,0,0,0),(0,0,0,0),(1,0,0,0)),
                                         ((0,1,1,0),(1,0,1,0),(1,1,0,0),(0,0,0,0)),
                                         ((0,0,0,0),(0,0,1,1),(0,1,0,1),(0,1,1,0)),
                                         ((0,1,0,1),(1,0,0,1),(0,0,0,0),(1,1,0,0)),
                                         ((0,0,1,1),(0,0,0,0),(1,0,0,1),(1,0,1,0)),
                                         ((0,1,1,1),(1,0,1,1),(1,1,0,1),(1,1,1,0)),
                                         ((0,1,0,0),(1,0,0,0),(0,0,0,1),(0,0,1,0)),
                                         ((0,0,1,0),(0,0,0,1),(1,0,0,0),(0,1,0,0)),
                                         ((0,0,0,1),(0,0,1,0),(0,1,0,0),(1,0,0,0)));
var
  i,j,n,m,sx,sy,sf,ex,ey,ef,t:longint;
  map:array[1..6,1..6]of longint;
  bool:array[1..6,1..6,1..5]of boolean;
  ch:char;
procedure adj(var x1,y1,z1:longint);
begin
  if z1=1 then begin x1:=x1-1; y1:=y1; z1:=2; exit end;
  if z1=2 then begin x1:=x1+1; y1:=y1; z1:=1; exit end;
  if z1=3 then begin x1:=x1; y1:=y1-1; z1:=4; exit end;
  if z1=4 then begin x1:=x1; y1:=y1+1; z1:=3; exit end
end;
procedure dfs(x,y,z,step:longint);
var
  l,xx,yy,zz:longint;
begin
  if (x=ex) and (y=ey) and (z=ef) then
    inc(t)
  else
  begin
    xx:=x; yy:=y; zz:=z;
    if step<>1 then
      adj(xx,yy,zz);
    if (xx>=1) and (xx<=m) and
       (yy>=1) and (yy<=n) then
    for l:=1 to 4 do
      if (kind[map[xx,yy],zz,l]=1) and bool[xx,yy,l] and bool[xx,yy,5] then
      begin
        if (map[xx,yy]>=7) and (map[xx,yy]<=11) then
          bool[xx,yy,5]:=false;
        bool[xx,yy,l]:=false;
        dfs(xx,yy,l,step+1);
        bool[xx,yy,l]:=true;
        if (map[xx,yy]>=7) and (map[xx,yy]<=11) then
          bool[xx,yy,5]:=true;
      end
  end
end;
procedure init;
begin
  read(m,n);
  for i:=1 to m do
    for j:=1 to n do
      read(map[i,j]);
  readln;
  read(sx,sy); repeat read(ch) until (ch>'A') and (ch<'Z'); sf:=fangxiang[ch];
  read(ex,ey); repeat read(ch) until (ch>'A') and (ch<'Z'); ef:=fangxiang[ch];
  fillchar(bool,sizeof(bool),true);
  t:=0;
end;
procedure main;
begin
  assign(input,'paipe.in');
  reset(input);
  assign(output,'paipe.out');
  rewrite(output);
  repeat
    init;
    dfs(sx,sy,sf,1);
    writeln(t);
    readln
  until eof;
  close(input);
  close(output)
end;
begin
  main
end.