#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse2")
using namespace std;
long long dp[8][8][100];
long long v[8][8];
bool ch = 0;
long long dx[3] = {-1, 0, 1};
long long dy[3] = {-1, 0, 1};
long long get(long long i, long long j, long long tim) {
  for (long long k = 0; k <= i; k++) {
    if (v[k][j] == 0)
      if ((i - k) == tim) return 1;
  }
  return 0;
}
long long check(long long x, long long y) {
  if (x >= 0 and x < 8 and y >= 0 and y < 8)
    return 1;
  else
    return 0;
}
long long rec(long long x, long long y, long long tim) {
  if (tim >= 100) return 0;
  if (x == 0 and y == 7) return 1;
  if (dp[x][y][tim] == -1) {
    long long ans = 0;
    if (tim == 0) {
      for (long long i = 0; i < 3 and ans == 0; i++) {
        for (long long j = 0; j < 3 and ans == 0; j++) {
          if (check(x + dx[i], y + dy[j]) and
              get(x + dx[i], y + dy[j], tim + 1) == 0 and
              get(x + dx[i], y + dy[j], tim) == 0)
            ans |= rec(x + dx[i], y + dy[j], tim + 1);
        }
      }
    } else {
      for (long long i = 0; i < 3 and ans == 0; i++) {
        for (long long j = 0; j < 3 and ans == 0; j++) {
          if (check(x + dx[i], y + dy[j]) and
              get(x + dx[i], y + dy[j], tim + 1) == 0 and
              get(x + dx[i], y + dy[j], tim) == 0)
            ans |= rec(x + dx[i], y + dy[j], tim + 1);
        }
      }
    }
    dp[x][y][tim] = ans;
    return ans;
  } else
    return dp[x][y][tim];
}
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  memset(dp, -1, sizeof(dp));
  for (long long i = 0; i < 8; i++) {
    for (long long j = 0; j < 8; j++) {
      char c;
      cin >> c;
      if (c == 'S')
        v[i][j] = 0;
      else
        v[i][j] = 1;
    }
  }
  if (rec(7, 0, 0))
    cout << "WIN";
  else
    cout << "LOSE";
}
