#include <bits/stdc++.h>
using namespace std;
char s[10][10];
bool vis[10][10];
vector<int> vvv[10][10];
int step[9][2] = {{0, 0}, {0, 1},  {0, -1}, {1, 0},  {-1, 0},
                  {1, 1}, {1, -1}, {-1, 1}, {-1, -1}};
struct node {
  int x;
  int y;
  int cnt;
} head, tail;
void bfs() {
  queue<node> q;
  head.x = 7;
  head.y = 0;
  head.cnt = 0;
  vis[head.x][head.y] = 1;
  q.push(head);
  while (!q.empty()) {
    head = q.front();
    q.pop();
    if (s[head.x][head.y] == 'A') {
      cout << "WIN" << endl;
      return;
    }
    for (int i = 0; i < 9; i++) {
      tail.x = head.x + step[i][0];
      tail.y = head.y + step[i][1];
      tail.cnt = head.cnt;
      if (tail.x >= 0 && head.x < 8 && tail.y >= 0 && tail.y < 8) {
        if (i && vis[tail.x][tail.y]) continue;
        bool flag = false;
        for (int j = 0; j < vvv[tail.x][tail.y].size(); j++) {
          if (tail.cnt == vvv[tail.x][tail.y][j] ||
              tail.cnt + 1 == vvv[tail.x][tail.y][j])
            flag = true;
        }
        if (!flag) {
          tail.cnt++;
          vis[tail.x][tail.y] = 1;
          q.push(tail);
        }
      }
    }
  }
  cout << "LOSE" << endl;
}
int main() {
  memset(vis, 0, sizeof(vis));
  for (int i = 0; i < 8; i++) cin >> s[i];
  for (int i = 0; i < 8; i++) {
    for (int j = 0; j < 8; j++) {
      if (s[i][j] == 'S') {
        vvv[i][j].push_back(0);
        for (int k = 1; k < 8; k++) {
          int x = i + k;
          int y = j;
          if (x < 8) vvv[x][y].push_back(k);
        }
      }
    }
  }
  bfs();
  return 0;
}
