#include <bits/stdc++.h>
using namespace std;
int n, m;
bool debug = false;
int k, ans;
int dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};
char mp[22][22];
int dp[45][45][45][45];
int sg(int minX, int maxX, int minY, int maxY) {
  if (minX > maxX || minY > maxY) return 0;
  if (dp[minX][maxX][minY][maxY] != -1) return dp[minX][maxX][minY][maxY];
  set<int> mex;
  int tt;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      int x = i + j;
      int y = i - j + 20;
      if (x % 2 == minX % 2 && x >= minX && x <= maxX && y >= minY &&
          y <= maxY) {
        if (mp[i][j] == 'L') {
          tt = sg(minX, x - 2, minY, maxY) ^ sg(x + 2, maxX, minY, maxY);
        } else if (mp[i][j] == 'R') {
          tt = sg(minX, maxX, minY, y - 2) ^ sg(minX, maxX, y + 2, maxY);
        } else {
          tt = sg(minX, x - 2, minY, y - 2) ^ sg(minX, x - 2, y + 2, maxY) ^
               sg(x + 2, maxX, minY, y - 2) ^ sg(x + 2, maxX, y + 2, maxY);
        }
        mex.insert(tt);
      }
    }
  }
  int i = 0;
  for (int t : mex) {
    if (t != i) break;
    i++;
  }
  return dp[minX][maxX][minY][maxY] = i;
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++) {
    scanf("%s", mp[i]);
  }
  memset(dp, -1, sizeof dp);
  bool bl = sg(0, 40, 0, 40) ^ sg(1, 39, 1, 39);
  puts(bl ? "WIN" : "LOSE");
  return 0;
}
