#include<iostream>
#include<algorithm>
#include<queue>
#include<cstring>
using namespace std;
const int N=110;
struct Node
{
int x,y,z;
};
char Map[N][N][N];
int dist[N][N][N];
int l,r,c,ans;
int dx[]={0,1,0,-1,0,0},dy[]={-1,0,1,0,0,0},dz[]={0,0,0,0,1,-1};
bool bfs()
{
queue<Node> p;
for(int i=1;i<=l;i++)
for(int j=1;j<=r;j++)
for(int k=1;k<=c;k++)
{
if(Map[i][j][k]=='S')
{
Node node;
node.x=j;
node.y=k;
node.z=i;
p.push(node);
dist[i][j][k]=0;
break;
}
}
while(p.size())
{
Node t=p.front();
p.pop();
for(int i=0;i<6;i++)
{
int x=t.x+dx[i],y=t.y+dy[i],z=t.z+dz[i];
if(x>=1 && x<=r && y>=1 && y<=c && z>=1 && z<=l && dist[z][x][y]==-1 && Map[z][x][y]!='#')
{
Node node;
node.x=x;
node.y=y;
node.z=z;
dist[z][x][y]=dist[t.z][t.x][t.y]+1;
p.push(node);
}
}
}
for(int i=1;i<=l;i++)
for(int j=1;j<=r;j++)
for(int k=1;k<=c;k++)
{
if(Map[i][j][k]=='E' && dist[i][j][k]!=-1)
{
ans=dist[i][j][k];
return true;
}
}
return false;
}
int main()
{
while(cin>>l>>r>>c)
{
if(l==0 || r==0 || c==0)break;
memset(dist,-1,sizeof(dist));
for(int i=1;i<=l;i++)
for(int j=1;j<=r;j++)cin>>Map[i][j]+1;
if(bfs())cout<<"Escaped in "<<ans<<" minute(s)."<<endl;
else cout<<"Trapped!"<<endl;
}
return 0;
}