#include <bits/stdc++.h>
using namespace std;
template <class T>
void Min(T &x, T y) {
  if (y < x) x = y;
}
template <class T>
void Max(T &x, T y) {
  if (y > x) x = y;
}
const int maxn = 100010;
char s[10][10];
bool f[10][10], t[10][10];
int dir[9][2] = {0, 1, 0, -1, 1, 0, 1, -1, 1, 1, -1, 0, -1, 1, -1, -1, 0, 0};
bool gao() {
  int i, j;
  for (i = 0; i < 8; i++)
    for (j = 0; j < 8; j++)
      if (f[i][j]) return true;
  return false;
}
int main() {
  int i, j;
  while (scanf("%s", s[0]) != EOF) {
    for (i = 1; i <= 7; i++) scanf("%s", s[i]);
    memset(f, 0, sizeof(f));
    f[7][0] = true;
    int x, y, nx, ny, k;
    for (i = 0; i < 10; i++) {
      memset(t, 0, sizeof(t));
      for (x = 0; x < 8; x++)
        for (y = 0; y < 8; y++)
          if (f[x][y]) {
            for (k = 0; k < 9; k++) {
              nx = x + dir[k][0], ny = y + dir[k][1];
              if (nx < 0 || nx > 7 || ny < 0 || ny > 7) continue;
              t[nx][ny] = true;
            }
          }
      for (x = 0; x < 8; x++)
        for (y = 0; y < 8; y++)
          if (s[x][y] == 'S') {
            if (x + i <= 7) t[x + i][y] = false;
            if (x + i + 1 <= 7) t[x + i + 1][y] = false;
          }
      memcpy(f, t, sizeof(f));
    }
    printf("%s", gao() ? "WIN\n" : "LOSE\n");
  }
  return 0;
}
