#include <iostream> #include <string> #include <cmath> #include <algorithm> #include <cstring> #include <cstdio> #include <cstdlib> using namespace std; string str[200]; int s[15000][2]; int me[2]; int def[15000][150]; int flag[15000]={0}; int flag1[200][200]; void defi(int ,int ,int); int main() { int i,j,k,a,t; int m,n,q;int s1=0; string str1; for(j=0;j<15000;j++) for(k=0;k<150;k++) def[j][k]=101; cin>>q; for(i=0;i<q;i++) { a=0; cin>>m>>n; getchar(); for(j=0;j<m;j++) getline(cin,str[j]); for(j=0;j<m;j++) for(k=0;k<n;k++) { if(str[j][k]=='R') { s[a++][0]=j; s[a-1][1]=k; } if(str[j][k]=='Y') { me[0]=j;me[1]=k; } } for(j=0;j<a;j++) defi(j,s[j][0],s[j][1]); for(j=0;j<150;j++) { if(s1==0) { for(k=0;k<a;k++) { if(s1==0){ if(def[k][j]!=me[0]*1000+me[1]) { for(t=0;t<a;t++) { if(t!=k){ if(flag1[def[k][j]/1000][def[k][j]%1000]==1) flag[k]=1; else if(flag1[def[t][j]/1000][def[t][j]%1000]==1) flag[t]=1; else if(flag[k]==0&&flag[t]==0){ if(def[k][j]==def[t][j]) { flag[k]=1;flag[t]=1; flag1[def[k][j]/1000][def[k][j]%1000]=1; }} } } } else if(flag[k]==0) { cout<<"LOSE"<<endl; s1=1; } } } } } k=0; for(j=0;j<a;j++) if(flag[j]==1) k++; if(k==a) cout<<"WIN"<<endl; s1=0; memset(flag,0,sizeof(flag)); for(j=0;j<200;j++) for(k=0;k<200;k++) flag1[j][k]=0; for(j=0;j<15000;j++) for(k=0;k<150;k++) def[j][k]=101; } return 0; } void defi(int a,int b,int c) { int i; if(b-me[0]>=0) { if(c-me[1]>0) { for( i=0;i<abs(me[0]-b)&&i<abs(me[1]-c);i++) def[a][i]=(b-i-1)*1000+c-i-1; if(i==abs(me[0]-b)) { if(i!=0){ i--; for(int j=0;j<abs(me[1]-c)-i;j++) { def[a][i+1+j]=def[a][i+j]-1; }} else { def[a][0]=b*1000+c-1; for(int j=0;j<abs(me[1]-c)-i-1;j++) { def[a][i+j+1]=def[a][i+j]-1; } } } else { i--; for(int j=0;j<abs(me[0]-b)-i;j++) { def[a][i+j+1]=def[a][i+j]-1000; } } } else { for( i=0;i<abs(me[0]-b)&&i<abs(me[1]-c);i++) def[a][i]=(b-i-1)*1000+c+i+1; if(i==abs(me[0]-b)) { if(i!=0){ i--; for(int j=0;j<abs(me[1]-c)-i;j++) { def[a][i+j+1]=def[a][i+j]+1; }} else { def[a][0]=b*1000+1; for(int j=0;j<abs(me[1]-c)-i-1;j++) { def[a][i+j+1]=def[a][i+j]+1; } } } else { if(i!=0){ i--; for(int j=0;j<abs(me[0]-b)-i;j++) { def[a][i+j+1]=def[a][i+j]-1000; }} else { def[a][0]=(b-1)*1000+c; for(int j=0;j<abs(me[0]-b)-i-1;j++) { def[a][i+j+1]=def[a][i+j]-1000; } } } } } else { if(c-me[1]>0) { for( i=0;i<abs(me[0]-b)&&i<abs(me[1]-c);i++) def[a][i]=(b+i+1)*1000+c-i-1; if(i==abs(me[0]-b)) { i--; for(int j=0;j<abs(me[1]-c)-i;j++) { def[a][i+j+1]=def[a][i+j]-1; } } else { i--; for(int j=0;j<abs(me[0]-b)-i;j++) { def[a][i+j+1]=def[a][i+j]+1000; } } } else { for( i=0;i<abs(me[0]-b)&&i<abs(me[1]-c);i++) def[a][i]=(b+i+1)*1000+c+i+1; if(i==abs(me[0]-b)) { i--; for(int j=0;j<abs(me[1]-c)-i;j++) { def[a][i+j+1]=def[a][i+j]+1; } } else { if(i!=0){ i--; for(int j=0;j<abs(me[0]-b)-i;j++) { def[a][i+j+1]=def[a][i+j]+1000; }} else{ def[a][0]=(b+1)*1000+c; for(int j=0;j<abs(me[0]-b)-i-1;j++) { def[a][i+j+1]=def[a][i+j]+1000; }} } } } }