#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int d[9][2] = {0, 1, 0,  -1, 1, 0,  -1, 0, 1,
                     1, 1, -1, -1, 1, -1, -1, 0, 0};
char str[10][10];
struct Point {
  int x, y, d;
  Point() {}
  Point(int x, int y, int d) {
    this->x = x;
    this->y = y;
    this->d = d;
  }
} e;
Point SB[66];
int sn;
int vis[10][10][10];
queue<Point> Q;
bool judge() {
  while (!Q.empty()) {
    Point u = Q.front();
    if (e.x == u.x && e.y == u.y) return true;
    if (u.d == 9) return true;
    Q.pop();
    for (int i = 0; i < 9; i++) {
      int x = u.x + d[i][0];
      int y = u.y + d[i][1];
      int td = u.d + 1;
      if (x < 0 || x >= 8 || y < 0 || y >= 8 || vis[x][y][td]) continue;
      int flag = 1;
      for (int j = 0; j < sn; j++) {
        if (SB[j].x + td == x && SB[j].y == y) {
          flag = 0;
          break;
        }
        if (SB[j].y == y && SB[j].x + u.d == x) {
          flag = 0;
          break;
        }
      }
      if (!flag) continue;
      vis[x][y][td] = 1;
      Q.push(Point(x, y, td));
    }
  }
  return false;
}
int main() {
  for (int i = 0; i < 8; i++) {
    scanf("%s", str[i]);
    for (int j = 0; j < 8; j++) {
      if (str[i][j] == 'S') SB[sn++] = Point(i, j, 9);
      if (str[i][j] == 'M') {
        Q.push(Point(i, j, 0));
        vis[i][j][0] = 1;
      }
      if (str[i][j] == 'A') e = Point(i, j, 9);
    }
  }
  printf("%s\n", judge() ? "WIN" : "LOSE");
  return 0;
}
