#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> statues(8);
vector<vector<char>> MAT(8, vector<char>(8));
vector<vector<vector<bool>>> VIS(8,
                                 vector<vector<bool>>(8,
                                                      vector<bool>(10, false)));
vector<pair<int, int>> moveDir = {{0, 1},  {0, -1}, {1, 0},   {-1, 0}, {1, 1},
                                  {-1, 1}, {1, -1}, {-1, -1}, {0, 0}};
bool checkStatues(int r, int c, int level) {
  for (int i = 0; i < statues[c].size(); ++i) {
    if (statues[c][i] + level < 8 && statues[c][i] + level == r) return false;
  }
  return true;
}
bool isSafe(int r, int c, int level) {
  if (level > 8) level = 8;
  if (r < 0 || r >= 8 || c < 0 || c >= 8 || VIS[r][c][level]) return false;
  return checkStatues(r, c, level);
}
bool dfs(int r, int c, int level) {
  bool canMove = false;
  if (level > 8) level = 8;
  if (r == 0 && c == 7) return true;
  for (int i = 0; i < 9; ++i) {
    int newR = r + moveDir[i].first;
    int newC = c + moveDir[i].second;
    if (isSafe(newR, newC, level + 1) && checkStatues(newR, newC, level)) {
      VIS[r][c][level] = true;
      canMove = canMove || dfs(newR, newC, level + 1);
    }
  }
  return canMove;
}
int main() {
  for (int i = 0; i < 8; ++i) {
    for (int j = 0; j < 8; ++j) {
      cin >> MAT[i][j];
      if (MAT[i][j] == 'S') statues[j].push_back(i);
    }
  }
  bool canWin = dfs(7, 0, 0);
  cout << ((canWin) ? "WIN" : "LOSE") << '\n';
}
