#include <bits/stdc++.h>
const long long inf = 1000000000ll;
const long long inf64 = inf * inf;
const long long base = inf + 7;
const long long MOD = inf + 9;
const double pi = acos(-1.0);
using namespace std;
template <typename T, typename P>
const ostream& operator<<(ostream& os, const pair<T, P>& a) {
  os.precision(10);
  os << fixed;
  os << a.first;
  os << ' ';
  os << a.second;
  os << '\n';
  return os;
}
string read() {
  char buffer[10];
  gets(buffer);
  return buffer;
}
bool solve() {
  vector<string> mat(8), mat2;
  for (int i(0); i < 8; i++) {
    mat[i] = read();
  }
  queue<pair<int, int> > q;
  queue<int> dist;
  vector<vector<bool> > used(8, vector<bool>(8, 0));
  vector<vector<vector<bool> > > will(
      80, vector<vector<bool> >(8, vector<bool>(8, 0)));
  for (int i(0); i < 8; i++) {
    for (int j(0); j < 8; j++) {
      if (mat[i][j] != 'S') continue;
      for (int k(i); k < 8; k++) {
        will[k - i][k][j] = 1;
      }
    }
  }
  used[7][0] = 1;
  q.push(make_pair(7, 0));
  dist.push(0);
  while (!q.empty()) {
    int vi, vj, d;
    vi = q.front().first;
    vj = q.front().second;
    d = dist.front();
    q.pop();
    dist.pop();
    if (vi == 0 && vj == 7) break;
    for (int di(-1); di <= 1; di++) {
      for (int dj(-1); dj <= 1; dj++) {
        int toi = vi + di, toj = vj + dj;
        if (toi < 0 || toi > 7 || toj < 0 || toj > 7) continue;
        if (will[d][toi][toj]) continue;
        if (will[d + 1][toi][toj]) continue;
        if (di == 0 && dj == 0 && d + 1 >= 10) continue;
        if (toi != vi && toj != vj && used[toi][toj]) continue;
        q.push(make_pair(toi, toj));
        dist.push(d + 1);
        used[toi][toj] = 1;
      }
    }
  }
  puts(used[0][7] ? "WIN" : "LOSE");
  return true;
}
int main() {
  solve();
  return 0;
}
