#include <stdio.h>
#include <iostream>
#include <cmath>
#include <cstring>
#include <queue>
using namespace std;
structloc
{
int row,col,lev,time;
};
char maze[40][40][40];
int dir[6][3]={{0,1,0},{0,-1,0},{1,0,0},{-1,0,0},{0,0,1},{0,0,-1}},vis[40][40][40];
loc sta,end;
int main()
{
int L,R,C,i,j,k,fine,R0,C0,L0,Re,Ce,Le,R1,C1,L1,time;
while(scanf("%d%d%d",&L,&R,&C)!=EOF)
{
if (L==0 && R==0 && C==0)
break;
fine=0;
memset(vis,0,sizeof(vis));
for (k=0;k<L;k++)
{
for (i=0;i<R;i++)
{
scanf("%s",maze[k][i]);
for (j=0;j<C;j++)
{
if (maze[k][i][j]=='S')
{R0=i;C0=j;L0=k;}
if (maze[k][i][j]=='E')
{Re=i;Ce=j;Le=k;}
}
}
getchar();
}
queue <loc> Q;
loc cur,next;
cur.row=R0;
cur.col=C0;
cur.lev=L0;
cur.time=0;
Q.push(cur);
vis[L0][R0][C0]=1;
while(!Q.empty() && !fine)
{
cur=Q.front();
Q.pop();
if (cur.row==Re && cur.col==Ce && cur.lev==Le)
{fine=1;break;}
for (i=0;i<6;i++)
{
R1=cur.row+dir[i][0];
C1=cur.col+dir[i][1];
L1=cur.lev+dir[i][2];
if(R1>=0 && R1<R && C1>=0 && C1<C && L1>=0 && L1<L && maze[L1][R1][C1]!='#' && !vis[L1][R1][C1])
{
vis[L1][R1][C1]=1;
next.row=R1;
next.col=C1;
next.lev=L1;
next.time=cur.time+1;
Q.push(next);
}
}
}
if (fine)
printf("Escaped in %d minute(s).\n",cur.time);
else
printf("Trapped!\n");
}
return 0;
}