#include <bits/stdc++.h>
const int N = 10;
char state[N][N];
int dx[] = {0, 1, 0, -1, 0, -1, -1, 1, 1};
int dy[] = {1, 0, -1, 0, 0, -1, 1, -1, 1};
bool vis[N][N][200];
struct data {
  int x, y;
  int step;
  data(){};
  data(int a, int b, int c) : x(a), y(b), step(c){};
} queue[10 * 10 * 2000];
int main() {
  for (int i = 0; i < 8; ++i) scanf("%s", state[i]);
  state[7][0] = '.';
  int head = 0, tail = 0;
  queue[tail++] = data(7, 0, 0);
  int S = 0;
  while (head < tail) {
    data nn = queue[head];
    if (nn.x == 0 && nn.y == 7) break;
    head++;
    if (nn.step != S) {
      for (int i = 7; i >= 0; --i)
        for (int j = 0; j < 8; ++j)
          if (state[i][j] == 'S') {
            state[i + 1][j] = 'S';
            state[i][j] = '.';
          }
      S = nn.step;
    }
    if (state[nn.x][nn.y] == 'S') continue;
    for (int l = 0; l < 9; ++l) {
      int x = nn.x + dx[l];
      int y = nn.y + dy[l];
      if (0 <= x && x < 8 && 0 <= y && y < 8 && state[x][y] != 'S') {
        if (!vis[x][y][nn.step + 1]) {
          vis[x][y][nn.step + 1] = true;
          queue[tail++] = data(x, y, nn.step + 1);
        }
      }
    }
  }
  if (head == tail)
    printf("LOSE\n");
  else
    printf("WIN\n");
  return 0;
}
