#include <bits/stdc++.h>
using namespace std;
bool visited[8][8][8];
int dx[] = {-1, -1, -1, 0, 0, 0, +1, +1, +1};
int dy[] = {-1, 0, +1, -1, 0, +1, -1, 0, +1};
bool valid(int x, int y, int n, int m) {
  if (x >= 0 && y >= 0 && x < n && y < m) return true;
  return false;
}
int main() {
  int x, y;
  string s[8][8], temp;
  for (int i = 0; i < 8; i++) cin >> s[0][i];
  s[0][0][7] = s[0][7][0] = '.';
  temp = "........";
  for (int i = 1; i < 8; i++) {
    s[i][0] = temp;
    for (int j = 1; j < 8; j++) {
      s[i][j] = s[i - 1][j - 1];
    }
  }
  pair<int, int> t;
  t = make_pair(7, 0);
  list<pair<int, int> > queue;
  queue.push_back(t);
  int l = 0, tem;
  list<int> level;
  level.push_back(l);
  while (!queue.empty()) {
    t = queue.front();
    queue.pop_front();
    l = level.front();
    level.pop_front();
    for (int i = 0; i < 9; i++) {
      x = t.first + dx[i];
      y = t.second + dy[i];
      if (valid(x, y, 8, 8)) {
        tem = l;
        if (l < 7) tem++;
        if (s[tem][x][y] != 'S' && s[l][x][y] != 'S') {
          if (!visited[tem][x][y]) {
            visited[tem][x][y] = true;
            if (x == 0 && y == 7) {
              cout << "WIN" << endl;
              return 0;
            }
            queue.push_back(make_pair(x, y));
            level.push_back(tem);
          }
        }
      }
    }
  }
  cout << "LOSE" << endl;
  return 0;
}
