cin>>c;
if(c=='#')
{
a[i][j]=0;
}else if(c=='S')
{
a[i][j]=0;
pos_stax=i; pos_stay=j;
}else if(c=='E')
{
a[i][j]=1;
pos_endx=i; pos_endy=j;
}else if(c=='.')
{
a[i][j]=1;
}
}
}
deal_left();
deal_right();
deal();
cout<
return 0;
}
void deal_left()
{
int i,j,x1,y1,x2,y2,x3,y3,s,x4,y4,t,temp1,temp2;
s=2; x1=pos_stax; y1=pos_stay;
for(i=0;i<=3;i++)
{
x2=x1+vex1[i]; y2=y1+vey1[i];
if(x2>=1&&x2<=n&&y2>=1&&y2<=m&&a[x2][y2])
{
break;
}
}
while(1)
{
x4=x2-x1; y4=y2-y1;
if(x4<0&&y4==0)
{
t=0;
}else if(x4>0&&y4==0)
{
t=1;
}else if(x4==0&&y4>0)
{
t=2;
}else if(x4==0&&y4<0)
{
t=3;
}
if(a[x2+vex1[t]][y2+vey1[t]])
{
x1=x2; y1=y2;
x2=x2+vex1[t]; y2=y2+vey1[t];
s+=1;
}else
{
x3=x2+vectorx[t]; y3=y2+vectory[t];
if(a[x3][y3])
{
x1=x2; y1=y2;
x2=x3; y2=y3;
}else
{
x3=x2+vex2[t]; y3=y2+vey2[t];
if(a[x3][y3])
{
x1=x2; y1=y2;
x2=x3; y2=y3;
}else
{
x1=x2; y1=y2;
x2=temp1; y2=temp2;
}
}
s++;
}
if(x2==pos_endx&&y2==pos_endy)
{
res1=s;
break;
}
}
}
void deal_right()
{
int i,j,x1,y1,x2,y2,x3,y3,s,x4,y4,t,temp1,temp2;
int sum=0;
s=2; x1=pos_stax; y1=pos_stay;
for(i=0;i<=3;i++)
{
x2=x1+vex1[i]; y2=y1+vey1[i];
if(x2>=1&&x2<=n&&y2>=1&&y2<=m&&a[x2][y2])
{
break;
}
}
while(1)
{
x4=x2-x1; y4=y2-y1;
if(x4<0&&y4==0)
{
t=0;
}else if(x4>0&&y4==0)
{
t=1;
}else if(x4==0&&y4>0)
{
t=2;
}else if(x4==0&&y4<0)
{
t=3;
}
if(a[x2+vex2[t]][y2+vey2[t]])
{
x1=x2; y1=y2;
x2=x2+vex2[t]; y2=y2+vey2[t];
s+=1;
}else
{
x3=x2+vectorx[t]; y3=y2+vectory[t];
if(a[x3][y3])
{
x1=x2; y1=y2;
x2=x3; y2=y3;
}else
{
x3=x2+vex1[t]; y3=y2+vey1[t];
if(a[x3][y3])
{
x1=x2; y1=y2;
x2=x3; y2=y3;
}else
{
temp1=x1; temp2=y1;
x1=x2; y1=y2;
x2=temp1; y2=temp2;
}
}
s++;
}
if(x2==pos_endx&&y2==pos_endy)
{