#include <bits/stdc++.h>
using namespace std;
const double PI = 3.14159265358979323846;
const double eps = (1e-9);
const int MAX_N = 102;
bool g[MAX_N][2];
int mem[MAX_N][3][3];
int grundy(int len, int top, int bottom) {
  if (len <= 0) return 0;
  int &ret = mem[len][top][bottom];
  if (~ret) return ret;
  vector<bool> exist(2 * len + 1);
  for (int it = 0; it < 2; ++it) {
    for (int i = 0; i < len; ++i) {
      bool ok = true;
      int opposite = !it;
      if (i == 0) ok &= !((1 << opposite) & top);
      if (i == len - 1) ok &= !((1 << opposite) & bottom);
      if (ok)
        exist[grundy(i, top, (1 << it)) ^
              grundy(len - i - 1, (1 << it), bottom)] = true;
    }
  }
  ret = 0;
  while (exist[ret]) ret++;
  return ret;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int r, n;
  cin >> r >> n;
  for (int i = 0; i < n; ++i) {
    int u, v;
    cin >> u >> v;
    --u;
    --v;
    g[u][v] = 1;
  }
  int G = 0;
  memset(mem, -1, sizeof(mem));
  for (int i = 0, top = 0, bottom = 0, len = 0; i < r;) {
    while (i < r && !g[i][0] && !g[i][1]) {
      ++len;
      ++i;
    }
    if (i < r && g[i][0]) bottom |= 1;
    if (i < r && g[i][1]) bottom |= 2;
    G ^= grundy(len, top, bottom);
    len = 0;
    top = bottom;
    bottom = 0;
    while (i < r && (g[i][0] || g[i][1])) i++;
  }
  cout << (G > 0 ? "WIN" : "LOSE") << '\n';
}
