#include <bits/stdc++.h>
using namespace std;
char ady[1505][9][9];
struct Estado {
  int x, y, id;
  Estado(int xx, int yy, int i) : x(xx), y(yy), id(i) {}
};
int dx[9] = {1, -1, 0, 0, 1, 1, -1, -1, 0};
int dy[9] = {0, 0, 1, -1, 1, -1, 1, -1, 0};
bool seen[1505][9][9];
void bfs() {
  queue<Estado> Q;
  Q.push(Estado(7, 0, 0));
  memset(seen, 0, sizeof(seen));
  bool lose = true;
  int it = 0;
  while (!Q.empty()) {
    Estado act = Q.front();
    Q.pop();
    if (ady[act.id][act.x][act.y] == 'A') {
      lose = false;
      break;
    }
    bool soldier = false;
    for (int i = 0; i < 8; ++i) {
      for (int j = 0; j < 8; ++j) {
        if (ady[act.id][i][j] == 'S') {
          soldier = true;
          i = 8;
        }
      }
    }
    if (!soldier) {
      lose = false;
      break;
    }
    for (int i = 0; i < 8; ++i) ady[act.id + 1][0][i] = '.';
    for (int i = 0; i < 7; ++i) {
      for (int j = 0; j < 8; ++j) {
        ady[act.id + 1][i + 1][j] = ady[act.id][i][j];
      }
    }
    lose = false;
    ady[act.id + 1][0][7] = 'A';
    int aux = 0;
    for (int i = 0; i < 9; ++i) {
      int nx = dx[i] + act.x, ny = dy[i] + act.y;
      if (nx >= 0 && ny >= 0 && nx < 8 && ny < 8 && !seen[act.id][nx][ny] &&
          ady[act.id][nx][ny] != 'S') {
        if (ady[act.id + 1][nx][ny] == 'S') {
          lose = true;
        } else {
          aux = 1;
          Q.push(Estado(nx, ny, act.id + 1));
        }
      }
    }
    if (lose && aux == 0) continue;
  }
  if (lose)
    printf("LOSE\n");
  else
    printf("WIN\n");
}
int main() {
  for (int i = 0; i < 8; ++i)
    for (int j = 0; j < 8; ++j) scanf(" %c", &ady[0][i][j]);
  bfs();
  return 0;
}
