#include <bits/stdc++.h>
using namespace std;
int n, m;
char A[42][42];
namespace Ninit {
void init() {
  int i;
  scanf("%d%d", &n, &m);
  for (i = 0; i < n; ++i) scanf("%s", A[i]);
}
}  // namespace Ninit
namespace Nsolve {
int F[42][42][42][42][2];
int Fget(int l, int r, int x, int y, int k) {
  if (F[l][r][x][y][k] >= 0) return F[l][r][x][y][k];
  int &Fc = F[l][r][x][y][k];
  set<int> U;
  int i, j, p, q, u, v;
  for (i = 0; i < n; ++i)
    for (j = 0; j < m; ++j)
      if ((i + j & 1) == k) {
        u = i + j, v = i - j + m;
        if (l <= u && u < r && x <= v && v < y)
          U.insert(
              A[i][j] == 'L' ? Fget(l, u, x, y, k) ^ Fget(u + 1, r, x, y, k)
              : A[i][j] == 'R'
                  ? Fget(l, r, x, v, k) ^ Fget(l, r, v + 1, y, k)
                  : Fget(l, u, x, v, k) ^ Fget(l, u, v + 1, y, k) ^
                        Fget(u + 1, r, x, v, k) ^ Fget(u + 1, r, v + 1, y, k));
      }
  for (Fc = 0; U.count(Fc); ++Fc)
    ;
  return Fc;
}
void solve() {
  memset(F, 0xff, sizeof F);
  printf((Fget(0, n + m, 0, n + m, 0) ^ Fget(0, n + m, 0, n + m, 1))
             ? "WIN\n"
             : "LOSE\n");
}
}  // namespace Nsolve
int main() {
  Ninit::init();
  Nsolve::solve();
  return 0;
}
