#include <bits/stdc++.h>
using namespace std;
char ss[9][8][8];
char maze[8][8];
int num[10];
int dir[9][2] = {1, 0, 0, 1, -1, 0, 0, -1, 1, 1, 1, -1, -1, 1, -1, -1, 0, 0};
struct node {
  int x, y;
  int step;
};
int judge(int x, int y) {
  if (x >= 0 && x < 8 && y >= 0 && y < 8) return 1;
  return 0;
}
int bfs() {
  queue<node> Q;
  node p, q;
  int i, j;
  p.x = 7;
  p.y = 0;
  p.step = 0;
  Q.push(p);
  j = 0;
  while (!Q.empty()) {
    q = Q.front();
    Q.pop();
    if (q.x == 0 && q.y == 7) {
      return 1;
    }
    for (i = 0; i < 9; i++) {
      p.x = q.x + dir[i][0];
      p.y = q.y + dir[i][1];
      p.step = q.step + 1;
      if (judge(p.x, p.y)) {
        if (ss[p.step][p.x][p.y] != 'S' && p.step <= 8 &&
            ss[p.step - 1][p.x][p.y] != 'S') {
          if (!num[p.step - 1]) return 1;
          Q.push(p);
        } else if (p.step > 8) {
          if (!num[8]) return 1;
          if (ss[8][p.x][p.y] != 'S') {
            Q.push(p);
          }
        }
      }
    }
  }
  return 0;
}
int main() {
  int i, j, k;
  char str[10];
  while (scanf("%s", str) != EOF) {
    strcpy(maze[0], str);
    for (j = 0; j < 8; j++)
      if (maze[0][j] == 'S') num[0]++;
    for (i = 1; i < 8; i++) {
      scanf("%s", maze[i]);
      for (j = 0; j < 8; j++)
        if (maze[i][j] == 'S') num[0]++;
    }
    for (i = 1; i <= 8; i++) num[i] = num[0];
    for (k = 1; k <= 8; k++) {
      for (i = 0; i < 8; i++) {
        for (j = 0; j < 8; j++) {
          ss[k][i][j] = '.';
        }
      }
    }
    for (k = 0; k <= 8; k++) {
      for (i = 0; i < 8; i++) {
        for (j = 0; j < 8; j++) {
          if (maze[i][j] == 'S') {
            if (i + k < 8) {
              ss[k][i + k][j] = 'S';
            } else {
              num[k] = num[k - 1] - 1;
            }
          }
        }
      }
    }
    if (bfs())
      printf("WIN\n");
    else
      printf("LOSE\n");
  }
  return 0;
}
