#include using namespace std; using ll=long long; using ld=double; #define FOR(i,a,b) for(ll i=a;i<(ll)b;++i) #define F(n) FOR(i,0,n) #define FF(n) FOR(j,0,n) #define aa first #define bb second #define PB push_back #define EQ(a,b) (fabs(a-b)<=(fabs(a+b)*EPS)) int zvirata[20][20]; int trava[20][20]; int pomzvirata[20][20]; struct zvire { zvire() {nezral = 0;vlk=false;} bool vlk; int nezral; }; int main(){ ios::sync_with_stdio(0);cout.tie(0);cin.tie(0); int kol,radku, sloupcu; zvire pole[810]; cin >> kol >> radku >> sloupcu ; int idvlk = 0; int idovce = 400; for(int i = 0;i> c; if(c == 'S') { zvirata[i][j] = idovce++; } else if(c=='W') { zvirata[i][j] = idvlk++; pole[zvirata[i][j]].vlk = true; } else { zvirata[i][j] = -1; } } } for(int k = 0;k=0) trava[i][j]++; for(int i = 0;i=0) { pole[zvirata[i][j]].nezral = 0; trava[i][ (j+1)%sloupcu] = -1; } pomzvirata[i][(j+1)%sloupcu] = zvirata[i][j]; } if(!pole[zvirata[i][j]].vlk) { if(pomzvirata[(i+1)%radku][j] >=0) { pole[pomzvirata[(i+1)%radku][j]].nezral = -1; trava[(i+1)%radku][j] = -1; } else { pomzvirata[(i+1)%radku][j] = zvirata[i][j]; if(trava[(i+1)%radku][j]>=3) { trava[(i+1)%radku][j]=0; pole[zvirata[i][j]].nezral = -1; } } } pole[zvirata[i][j]].nezral++; if(!pole[zvirata[i][j]].vlk && pole[zvirata[i][j]].nezral>=5) { trava[(i+1)%radku][j]=-1; if(pomzvirata[(i+1)%radku][j]>=0 && pomzvirata[(i+1)%radku][j] <400) {} else {pomzvirata[(i+1)%radku][j]=-1;} } else if(pole[zvirata[i][j]].vlk && pole[zvirata[i][j]].nezral>=10) { trava[i][ (j+1)%sloupcu]=-1; pomzvirata[i][ (j+1)%sloupcu]=-1; } } //for } } for(int i=0;i