#include <bits/stdc++.h>
using namespace std;
set<pair<int, int> > next(const set<pair<int, int> > &now) {
  set<pair<int, int> > ret;
  for (set<pair<int, int> >::iterator it = now.begin(); it != now.end(); ++it) {
    int x = it->first, y = it->second;
    if (y != 7) ret.insert(make_pair(x, y + 1));
  }
  return ret;
}
struct Status {
  int x, y;
  set<pair<int, int> > now;
  Status() {}
  Status(int xx, int yy, const set<pair<int, int> > &n)
      : x(xx), y(yy), now(n) {}
};
set<pair<int, int> > input() {
  set<pair<int, int> > st;
  for (int i = 0; i < 8; ++i) {
    for (int j = 0; j < 8; ++j) {
      char c;
      if (1 != scanf(" %c", &c)) return set<pair<int, int> >();
      if (c == 'S') st.insert(make_pair(j, i));
    }
  }
  return st;
}
int main(int argc, char **argv) {
  set<pair<int, int> > v;
  v = input();
  queue<Status> q;
  for (q.push(Status(0, 7, v)); !q.empty(); q.pop()) {
    const Status &s = q.front();
    int x = s.x, y = s.y;
    const set<pair<int, int> > &now = s.now;
    set<pair<int, int> > nex = next(now);
    for (int i = -1; i <= 1; ++i) {
      for (int j = -1; j <= 1; ++j) {
        int xx = x + i, yy = y + j;
        if (xx < 0 || xx >= 8 || yy < 0 || yy >= 8) continue;
        if (now.find(make_pair(xx, yy)) != now.end()) continue;
        if (nex.find(make_pair(xx, yy)) != nex.end()) continue;
        Status s(xx, yy, nex);
        int k = 0;
        for (; k < s.y; ++k) {
          if (s.now.find(make_pair(s.x, k)) != s.now.end()) break;
        }
        if (k == s.y) goto label;
        q.push(s);
      }
    }
  }
label:
  puts(q.empty() ? "LOSE" : "WIN");
  return 0;
}
