//用DFS会TLE...
#include <iostream>
#include <stdio.h>
#include <string>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#define N 50
#define INF 0x3f3f3f
using namespace std;
int dx[]={0,0,1,-1,0,0};
int dy[]={1,-1,0,0,0,0};
int dz[]={0,0,0,0,-1,1};
char ss[N][N][N];
int n,r,c;
int vis[N][N][N];
int step[N][N][N];
struct Node
{
int x,y,z;
};
Node s,e;
bool flag;
int bfs()
{
flag=0;
queue<Node>q;
q.push(s);
vis[s.x][s.y][s.z]=1;
Node f;
while(!q.empty())
{
f=q.front();
q.pop();
if(f.x==e.x && f.y==e.y && f.z==e.z)
{
flag=1;
break;
}
int x=f.x;
int y=f.y;
int z=f.z;
for(int i=0;i<6;i++)
{
int xx=x+dx[i];
int yy=y+dy[i];
int zz=z+dz[i];
if(!vis[xx][yy][zz] && xx>=0 && xx<n && yy>=0 && yy<r && zz>=0 && zz<c)
{
vis[xx][yy][zz]=1;
f.x=xx;
f.y=yy;
f.z=zz;
q.push(f);
step[xx][yy][zz]=step[x][y][z]+1;
}
}
}
return flag;
}
int main()
{
while(~scanf("%d %d %d",&n,&r,&c))
{
if(n+r+c==0) break;
memset(vis,0,sizeof vis);
memset(step,0,sizeof step);
for(int i=0;i<n;i++)
{
for(int j=0;j<r;j++)
{
for(int k=0;k<c;k++)
{
cin>>ss[i][j][k];
if(ss[i][j][k]=='S')
{
s.x=i;
s.y=j;
s.z=k;
}
else if(ss[i][j][k]=='E')
{
e.x=i;
e.y=j;
e.z=k;
}
else if(ss[i][j][k]=='#')
vis[i][j][k]=1;
}
}
}
if(bfs())
printf("Escaped in %d minute(s).\n",step[e.x][e.y][e.z]);
else
printf("Trapped!\n");
}
return 0;
}