#include <bits/stdc++.h>
using namespace std;
long long nChooseR(int n, int k);
long long gcd(long long a, long long b);
void strCountsort(string& arr);
void intCountSort(vector<int>& arr);
vector<string> split(string target, char c);
bool isPrime(long long g);
long long n, k, r, l, t, x, y, m, a[300005];
long long ans;
bool dfs(int x, int y, string s[]) {
  if (s[x][y] == 'S') return 0;
  if (x == 0) return 1;
  if (s[x - 1][y] != 'S') {
    string h[8];
    for (int i = 0; i < (int)(7); i++) h[7 - i] = s[7 - i - 1];
    h[0] = "........";
    if (dfs(x - 1, y, h)) return 1;
  }
  if (y < 7 && s[x - 1][y + 1] != 'S') {
    string h[8];
    for (int i = 0; i < (int)(7); i++) h[7 - i] = s[7 - i - 1];
    h[0] = "........";
    if (dfs(x - 1, y + 1, h)) return 1;
  }
  if (y > 0 && s[x - 1][y - 1] != 'S') {
    string h[8];
    for (int i = 0; i < (int)(7); i++) h[7 - i] = s[7 - i - 1];
    h[0] = "........";
    if (dfs(x - 1, y - 1, h)) return 1;
  }
  if (y > 0 && s[x][y - 1] != 'S') {
    string h[8];
    for (int i = 0; i < (int)(7); i++) h[7 - i] = s[7 - i - 1];
    h[0] = "........";
    if (dfs(x, y - 1, h)) return 1;
  }
  if (y < 7 && s[x][y + 1] != 'S') {
    string h[8];
    for (int i = 0; i < (int)(7); i++) h[7 - i] = s[7 - i - 1];
    h[0] = "........";
    if (dfs(x, y + 1, h)) return 1;
  }
  if (x < 7 && s[x + 1][y] != 'S') {
    string h[8];
    for (int i = 0; i < (int)(7); i++) h[7 - i] = s[7 - i - 1];
    h[0] = "........";
    if (dfs(x + 1, y, h)) return 1;
  }
  if (x < 7 && y > 0 && s[x + 1][y - 1] != 'S') {
    string h[8];
    for (int i = 0; i < (int)(7); i++) h[7 - i] = s[7 - i - 1];
    h[0] = "........";
    if (dfs(x + 1, y - 1, h)) return 1;
  }
  if (x < 7 && y > 0 < 7 && s[x + 1][y + 1] != 'S') {
    string h[8];
    for (int i = 0; i < (int)(7); i++) h[7 - i] = s[7 - i - 1];
    h[0] = "........";
    if (dfs(x + 1, y + 1, h)) return 1;
  }
  string h[8];
  for (int i = 0; i < (int)(7); i++) h[7 - i] = s[7 - i - 1];
  h[0] = "........";
  if (dfs(x, y, h)) return 1;
  return 0;
}
int main() {
  string s[8];
  for (int i = 0; i < (int)(8); i++) cin >> s[i];
  if (dfs(7, 0, s))
    cout << "WIN";
  else
    cout << "LOSE";
  return 0;
}
long long nChooseR(int n, int k) {
  if (k > n) return 0;
  if (k * 2 > n) k = n - k;
  if (k == 0) return 1;
  long long result = n;
  for (int i = 2; i <= k; ++i) {
    result *= (n - i + 1);
    result /= i;
  }
  return result;
}
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
void strCountsort(string& arr) {
  string output = arr;
  int max = *max_element(arr.begin(), arr.end());
  int min = *min_element(arr.begin(), arr.end());
  int range = max - min + 1;
  vector<int> count(range);
  int n = arr.size();
  for (int i = 0; i < n; i++) count[arr[i] - min]++;
  n = count.size();
  for (int i = 1; i < n; i++) count[i] += count[i - 1];
  n = arr.size();
  for (int i = n - 1; i >= 0; i--) {
    output[--count[arr[i] - min]] = arr[i];
  }
  arr = output;
}
void intCountSort(vector<int>& arr) {
  int max = *max_element(arr.begin(), arr.end());
  int min = *min_element(arr.begin(), arr.end());
  int range = max - min + 1;
  vector<int> count(range), output(arr.size());
  int n = arr.size();
  for (int i = 0; i < n; i++) count[arr[i] - min]++;
  n = count.size();
  for (int i = 1; i < n; i++) count[i] += count[i - 1];
  n = arr.size();
  for (int i = n - 1; i >= 0; i--) {
    output[--count[arr[i] - min]] = arr[i];
  }
  for (int i = 0; i < n; i++) arr[i] = output[i];
}
vector<string> split(string target, char c) {
  string d = "";
  vector<string> arr;
  for (auto n : target) {
    if (n != c)
      d += n;
    else if (d != "")
      arr.push_back(d), d = "";
  }
  if (d != "") arr.push_back(d), d = "";
  return arr;
}
bool isPrime(long long g) {
  if ((g % 2 == 0 && g > 2) || g == 1) return 0;
  for (int i = 3; i * i <= g; i += 2)
    if (g % i == 0) return 0;
  return 1;
}
