#include <bits/stdc++.h>
using namespace std;
char s[10][10];
int vis[10][10][10];
int d[8][2] = {-1, 0, 1, 0, 0, 1, 0, -1, -1, -1, 1, 1, -1, 1, 1, -1};
int n = 8, cnt[10];
struct node {
  int x, y, step;
  node() {}
  node(int u, int v, int w) {
    this->x = u;
    this->y = v;
    this->step = w;
  }
};
queue<node> Q;
int bfs() {
  int i, j;
  node e;
  Q.push(node(n - 1, 0, 0));
  while (!Q.empty()) {
    e = Q.front();
    if (e.step >= cnt[e.y]) {
      return 1;
    }
    Q.pop();
    for (i = 0; i < n; i++) {
      int dx = d[i][0] + e.x;
      int dy = d[i][1] + e.y;
      if (dx >= 0 && dy >= 0 && dx < n && dy < n && !vis[dx][dy][e.step + 1] &&
          !vis[dx][dy][e.step]) {
        Q.push(node(dx, dy, e.step + 1));
      }
    }
    if (!vis[e.x][e.y][e.step + 1]) {
      Q.push(node(e.x, e.y, e.step + 1));
    }
  }
  return 0;
}
int main() {
  int i, j, k;
  for (i = 0; i < n; i++) {
    cin >> s[i];
  }
  memset(vis, 0, sizeof(vis));
  memset(cnt, 0, sizeof(cnt));
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) {
      if (s[i][j] == 'S') {
        for (k = i; k < n; k++) {
          vis[k][j][k - i] = 1;
        }
      }
    }
  }
  for (j = 0; j < n; j++) {
    for (i = 0; i < n; i++) {
      if (s[i][j] == 'S') {
        break;
      }
    }
    cnt[j] = n - i - 1;
  }
  if (bfs()) {
    cout << "WIN" << endl;
  } else {
    cout << "LOSE" << endl;
  }
  return 0;
}
