#include <bits/stdc++.h>
using namespace std;
vector<int> graph[100];
int vis[100][30];
int check[100][30];
void bfs() {
  queue<pair<int, int>> Q;
  vis[56][0] = 1;
  Q.push({56, 0});
  while (!Q.empty()) {
    int node = Q.front().first;
    int f = Q.front().second;
    Q.pop();
    for (int i = f + 1; i < 8; i++) {
      if (check[node][i] == 1) {
        break;
      } else {
        Q.push({node, i});
        vis[node][i] = 1;
      }
    }
    for (int i = 0; i < graph[node].size(); i++) {
      int next = graph[node][i];
      if (check[next][f] == 0 && vis[next][f + 1] == 0) {
        if (check[next][f + 1] == 0) {
          vis[next][f + 1] = 1;
          Q.push({next, f + 1});
        }
      }
    }
  }
}
int main() {
  char c[8][8], d = 0, ans = 0;
  for (int i = 0; i < 8; i++) {
    for (int j = 0; j < 8; j++) {
      d = 0;
      cin >> c[i][j];
      if (c[i][j] == 'S') {
        for (int k = i; k < 8; k++) {
          check[k * 8 + j][d] = 1;
          d++;
        }
      }
    }
  }
  for (int i = 0; i < 8; i++) {
    for (int j = 0; j < 8; j++) {
      if (i != 7) {
        graph[i * 8 + j].push_back((i + 1) * 8 + j);
        graph[(i + 1) * 8 + j].push_back(i * 8 + j);
      }
      if (j != 7) {
        graph[i * 8 + j].push_back(i * 8 + j + 1);
        graph[i * 8 + j + 1].push_back(i * 8 + j);
      }
      if (i != 0 && j != 7) {
        graph[i * 8 + j].push_back((i - 1) * 8 + j + 1);
        graph[(i - 1) * 8 + j + 1].push_back(i * 8 + j);
      }
      if (i != 0 && j != 0) {
        graph[i * 8 + j].push_back((i - 1) * 8 + j - 1);
        graph[(i - 1) * 8 + j - 1].push_back(i * 8 + j);
      }
    }
  }
  bfs();
  for (int i = 0; i < 30; i++) {
    if (vis[7][i] == 1) {
      ans = 1;
    }
  }
  if (ans == 1) {
    cout << "WIN" << endl;
  } else
    cout << "LOSE" << endl;
}
