#include <bits/stdc++.h>
using namespace std;
const int inf = 1000 * 1000 * 1000, n = 8;
char a[10][10];
vector<int> d[10][10];
bool ok[10][10][1000], ok1;
struct ver {
  int x, y, t;
} v, u;
queue<ver> q;
bool add(int x, int y, int t) {
  if (ok[x][y][t] || !(x > 0 && x <= n && y > 0 && y <= n)) return 0;
  ok1 = true;
  for (int i = 0; i < (int)d[x][y].size(); i++)
    if (t - 1 == d[x][y][i] || t == d[x][y][i]) {
      ok1 = false;
      break;
    }
  if (!ok1) return 0;
  if (x == 1 && y == 8) {
    printf("WIN");
    exit(0);
  }
  ok[x][y][t] = true;
  u.x = x;
  u.y = y;
  u.t = t;
  q.push(u);
  return 1;
}
int main() {
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) scanf("%c", &a[i][j]);
    scanf("\n");
  }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++)
      if (a[i][j] == 'S') {
        for (int h = i; h <= n; h++) d[h][j].push_back(h - i);
      }
  v.x = 8;
  v.y = 1;
  v.t = 0;
  q.push(v);
  while (!q.empty()) {
    v = q.front();
    q.pop();
    add(v.x + 1, v.y + 0, v.t + 1);
    add(v.x - 1, v.y + 0, v.t + 1);
    add(v.x, v.y + 1, v.t + 1);
    add(v.x, v.y - 1, v.t + 1);
    add(v.x + 1, v.y + 1, v.t + 1);
    add(v.x - 1, v.y + 1, v.t + 1);
    add(v.x - 1, v.y - 1, v.t + 1);
    add(v.x, v.y - 1, v.t + 1);
    add(v.x, v.y, v.t + 1);
  }
  printf("LOSE");
  return 0;
}
