#include<fstream>
#include<string>
using namespace std;
int main()
{
	char grid[5][101], s[255];
	int temp, count, grid2[5][101], i, j, k, l, x, y, x2, y2, blah;
	bool done;
	ifstream fin("DATA4.txt");
	ofstream fout("OUT4.txt");
	blah=5;
	while(blah--)
	{
	temp=0;
	while(true)
	{
	fin.getline(s, 255);
	done=true;
	for(i=0;i<10;++i)
	{
		if(s[i]!='x')
			done=false;
	}
	if(done)
		break;
	for(i=0;i<10;++i)
	{
		grid[temp][i]=s[i];
		if(s[i]=='S')
		{
			x=temp;
			y=i;
		}
		if(s[i]=='E')
		{
			x2=temp;
			y2=i;
		}
	}
	temp++;
	}
	for(i=0;i<temp;++i)
	{
		for(j=0;j<10;++j)
		{
			grid2[i][j]=9999;
		}
	}
	grid2[x][y]=0;
	count=0;
	done=false;
	while(true)
	{
		for(i=0;i<temp;++i)
		{
			for(j=0;j<10;++j)
			{
				if(grid2[i][j]==count)
				{
					for(k=-1;k<2;++k)
					{
						for(l=-1;l<2;++l)
						{
							if(!k&&!l)
								continue;
							if(i+k<0||i+k>9||j+l<0||j+l>9)
								continue;
							if(grid[i+k][j+l]==' ')
								continue;
							if(grid2[i+k][j+l]>count+1)
								grid2[i+k][j+l]=count+1;
							if(grid[i+k][j+l]=='E'&&!done)
							{
								fout<<grid2[i+k][j+l]<<endl;
								done=true;
							}
						}
					}
				}
			}
		}
		if(done)break;
		count++;
	}
	}
	return 0;
}
