#include <bits/stdc++.h>
using namespace std;
int dx[] = {1, 1, 0, -1, -1, -1, 0, 1, 0};
int dy[] = {0, 1, 1, 1, 0, -1, -1, -1, 0};
struct data {
  int x, y, tme;
  data(int a, int b, int c) {
    x = a;
    y = b;
    tme = c;
  }
};
int visited[10][10];
char A[15][15];
queue<struct data> q;
bool oka(int x, int y, int tme) {
  bool ans = (x >= 0 && x < 8 && y >= 0 && y < 8 && visited[x][y] < 10);
  if (x - tme >= 0 && A[x - tme][y] == 'S') ans = false;
  if (x - tme + 1 >= 0 && A[x - tme + 1][y] == 'S') ans = false;
  return ans;
}
bool bfs(struct data st, struct data ed) {
  int i, j, k;
  struct data c(0, 0, 0);
  q.push(st);
  visited[st.x][st.y]++;
  while (!q.empty()) {
    c = q.front();
    q.pop();
    if (c.x == ed.x && c.y == ed.y) return true;
    for (i = 0; i < 9; i++) {
      struct data t(c.x + dx[i], c.y + dy[i], c.tme + 1);
      if (oka(t.x, t.y, t.tme)) {
        visited[t.x][t.y]++;
        q.push(t);
      }
    }
  }
  return false;
}
int main() {
  int i, j, k;
  struct data c(0, 7, 0), ed(7, 0, 0);
  for (i = 0; i < 8; i++) scanf("%s", A[i]);
  for (i = 0; i < 10; i++)
    for (j = 0; j < 10; j++) visited[i][j] = 0;
  bfs(ed, c) ? printf("WIN\n") : printf("LOSE\n");
  return 0;
}
