#include <bits/stdc++.h>
using namespace std;
int chx[] = {-1, 0, 1, 0, 0, -1, 1, -1, 1};
int chy[] = {0, 1, 0, -1, 0, -1, 1, 1, -1};
char m[10][10];
int g[10][10];
bool inq[10000];
bool in_map(int x, int y) { return (x >= 1 && x <= 8 && y >= 1 && y <= 8); }
int ax, ay;
int main() {
  char c;
  queue<int> q;
  memset(inq, 0, sizeof(inq));
  memset(g, 0, sizeof(g));
  for (int i = 1; i <= 8; i++) {
    for (int j = 1; j <= 8; j++) {
      scanf("%c", &c);
      m[i][j] = c;
      if (m[i][j] == 'M') q.push(i * 10 + j);
      if (m[i][j] == 'A') {
        ax = i;
        ay = j;
      }
    }
    scanf("%c", &c);
  }
  bool ok = false;
  while (!q.empty()) {
    int size = q.size();
    for (int i = 0; i < size && ok == false; i++) {
      int now = q.front();
      q.pop();
      inq[now] = false;
      int x = now / 10;
      int y = now % 10;
      for (int j = 0; j < 9; j++) {
        int nx = x + chx[j];
        int ny = y + chy[j];
        if (inq[nx * 10 + ny]) continue;
        if (in_map(nx, ny) == false) continue;
        if (m[nx][ny] == 'S') continue;
        if (m[nx - 1][ny] == 'S') continue;
        if (nx == ax && ny == ay) {
          ok = true;
          break;
        }
        q.push(nx * 10 + ny);
        inq[nx * 10 + ny] = true;
      }
    }
    if (ok == true) break;
    for (int i = 8; i >= 2; i--) {
      for (int j = 1; j <= 8; j++) {
        if (i - 1 == ax && j == ay) {
          m[i][j] = '.';
          continue;
        }
        m[i][j] = m[i - 1][j];
      }
    }
    for (int i = 1; i <= 8; i++) {
      if (ax == 1 && ay == i)
        continue;
      else
        m[1][i] = '.';
    }
  }
  if (ok)
    printf("WIN\n");
  else
    printf("LOSE\n");
}
