#include <bits/stdc++.h>
using namespace std;
char s[8][11][11];
bool g[8][11][11];
bool flag[8][11][11];
int dr[9] = {-1, -1, 0, 1, 1, 1, 0, -1, 0};
int dc[9] = {0, 1, 1, 1, 0, -1, -1, -1, 0};
struct node {
  int r;
  int c;
  int in;
};
void ready() {
  int i, j, k;
  char str[11] = {"#........#"};
  for (j = 0; j <= 9; j++) s[0][0][j] = s[0][9][j] = '#';
  s[0][0][10] = '\0';
  s[0][9][10] = '\0';
  for (i = 7; i > 0; i--) {
    scanf("%s", s[0][i]);
    for (j = 8; j > 0; j--) s[0][i][j] = s[0][i][j - 1];
    s[0][i][0] = s[0][i][9] = '#';
    s[0][i][10] = '\0';
  }
  s[0][1][1] = '.';
  s[0][8][8] = '.';
  for (k = 1; k < 8; k++) {
    strcpy(s[k][0], s[k - 1][0]);
    strcpy(s[k][9], s[k - 1][9]);
    for (i = 1; i < 8; i++) strcpy(s[k][i], s[k - 1][i + 1]);
    strcpy(s[k][8], str);
  }
  memset(g, 0, sizeof g);
  for (k = 0; k < 8; k++) {
    for (i = 1; i <= 8; i++)
      for (j = 1; j <= 8; j++) {
        if (s[k][i][j] == 'S') {
          g[k][i - 1][j] = 1;
          g[k][i][j] = 1;
        }
      }
  }
}
bool spfa() {
  int i;
  node tmp;
  node next;
  queue<node> q;
  memset(flag, 0, sizeof flag);
  tmp.r = 1;
  tmp.c = 1;
  tmp.in = 0;
  flag[0][1][1] = 1;
  q.push(tmp);
  while (!q.empty()) {
    tmp = q.front();
    if ((tmp.r == 8 && tmp.c == 8) || tmp.in >= 7) return true;
    q.pop();
    flag[tmp.in][tmp.r][tmp.c] = 0;
    for (i = 0; i < 9; i++) {
      next.r = tmp.r + dr[i];
      next.c = tmp.c + dc[i];
      if (next.r >= 1 && next.c >= 1 && next.r <= 8 && next.c <= 8 &&
          !g[tmp.in][next.r][next.c]) {
        next.in = tmp.in + 1;
        if (!flag[next.in][next.r][next.c]) q.push(next);
      }
    }
  }
  return false;
}
int main() {
  while (scanf("%s", s[0][8]) != EOF) {
    for (int j = 8; j > 0; j--) s[0][8][j] = s[0][8][j - 1];
    s[0][8][0] = s[0][8][9] = '#';
    s[0][8][10] = '\0';
    ready();
    if (spfa())
      printf("WIN\n");
    else
      printf("LOSE\n");
  }
  return 0;
}
