#include <bits/stdc++.h>
using namespace std;
struct rcm {
  int r, c, m;
} p;
int dx[] = {0, 0, 1, 1, 1, 0, -1, -1, -1};
int dy[] = {0, 1, 1, 0, -1, -1, -1, 0, 1};
int main() {
  char buffer[200];
  char map[15][15];
  char enemy[150][15][15];
  bool visited[200][15][15];
  memset(enemy, '.', sizeof(enemy));
  memset(visited, false, sizeof(visited));
  int curX, curY;
  int finX = 0;
  int finY = 7;
  for (int i = 0; i < 8; i++) {
    gets(buffer);
    for (int j = 0; j < strlen(buffer); j++) {
      map[i][j] = buffer[j];
      enemy[0][i][j] = buffer[j];
      if (map[i][j] == 'M') {
        curX = i;
        curY = j;
      }
    }
  }
  for (int i = 0; i < 99; i++) {
    for (int j = 0; j < 8; j++) {
      for (int k = 0; k < 8; k++) {
        if (enemy[i][j][k] == 'S' && (j + 1) < 8) {
          enemy[i + 1][j + 1][k] = 'S';
        }
      }
    }
  }
  rcm p = (rcm){curX, curY, 0};
  stack<rcm> st;
  st.push((rcm){p.r, p.c, p.m});
  string res = "LOSE";
  bool found = false;
  while (!st.empty()) {
    p = st.top();
    st.pop();
    if (enemy[p.m][p.r][p.c] != 'S' && p.m < 50) {
      for (int i = 0; i < 9; i++) {
        curX = p.r + dx[i];
        curY = p.c + dy[i];
        if (curX >= 0 && curX < 8 && curY >= 0 && curY < 8) {
          if (map[curX][curY] == 'A') {
            res = "WIN";
            found = true;
          }
          if (enemy[p.m][curX][curY] != 'S' && !visited[p.m + 1][curX][curY]) {
            visited[p.m + 1][curX][curY] = true;
            st.push((rcm){curX, curY, p.m + 1});
          }
        }
      }
    }
    if (found) break;
  }
  printf("%s\n", res.c_str());
  return 0;
}
