#include using namespace std; #define inf 1000000000 #define INF 1000000000000000 #define ll long long #define ull unsigned long long #define M (int)(1e9+7) #define P pair #define PLL pair #define FOR(i,m,n) for(int i=(int)m;i<(int)n;i++) #define RFOR(i,m,n) for(int i=(int)m;i>=(int)n;i--) #define rep(i,n) FOR(i,0,n) #define rrep(i,n) RFOR(i,n,0) #define all(a) a.begin(),a.end() #define IN(a,n) rep(i,n){ cin>>a[i]; } const int vx[4] = {0,1,0,-1}; const int vy[4] = {1,0,-1,0}; #define PI 3.14159265 #define F first #define S second #define PB push_back #define EB emplace_back #define int ll #define PP pair void init(){ cin.tie(0); ios::sync_with_stdio(false); } int h,w; char s[600][600]; int d[600][600][2]; int sx,sy,gx,gy; main(){ cin>>h>>w; rep(i,h){ cin>>s[i]; rep(j,w){ d[i][j][0]=inf; d[i][j][1]=inf; if(s[i][j]=='S'){ sx=j;sy=i; }if(s[i][j]=='G'){ gx=j;gy=i; } } } d[sy][sx][0]=0; queue q; q.push(PP(0,P(sy,sx))); while(!q.empty()){ int v=q.front().F; P p=q.front().S; q.pop(); int a=2-v; //cout<