#include
#include
using namespace std;
#define N 32
char dun[N][N][N];
int vis[N][N][N];
int c,res;
int L,R,C;
typedef struct dir
{
int l;
int r;
int c;
};
vector towards;
void getTowards()
{
dir d1,d2,d3,d4,d5,d6;
d1.l=0;d1.r=-1;d1.c=0;
d2.l=0;d2.r=0;d2.c=1;
d3.l=0;d3.r=1;d3.c=0;
d4.l=0;d4.r=0;d4.c=-1;
d5.l=-1;d5.r=0;d5.c=0;
d6.l=1;d6.r=0;d6.c=0;
towards.push_back(d1);
towards.push_back(d2);
towards.push_back(d3);
towards.push_back(d4);
towards.push_back(d5);
towards.push_back(d6);
}
bool comp(dir a,dir b)
{
if(a.l==b.l&&a.r==b.r&&a.c==b.c)
return true;
return false;
}
bool addin(dir a,dir b)
{
int l,r,c;
l=a.l+b.l;
r=a.r+b.r;
c=a.c+b.c;
if(l>=0&&l<=L-1&&r>=0&&r<=R-1&&c>=0&&c<=C-1&&dun[l][r][c]!='#'&&!vis[l][r][c])
return true;
return false;
}
void dfs(dir s,dir e)
{
if(comp(s,e))
{
res=c;
return ;
}
vis[s.l][s.r][s.c]=1;
c++;
for(int i=0;i
>L>>R>>C)
{
if(L==0&&R==0&&C==0)
break;
dir s,e;
c=0,res=0;
for(int i=0;i>dun[i][j][k];
vis[i][j][k]=0;
if(dun[i][j][k]=='S')
{
s.l=i;s.r=j;s.c=k;
}
if(dun[i][j][k]=='E')
{
e.l=i;e.r=j;e.c=k;
}
}
dfs(s,e);
if(res==0)
cout<<"Trapped!"<