#include <bits/stdc++.h>
using namespace std;
const int N = 210;
const int M = 2000010;
const int mod = 10007;
const long long inf = 0x3f3f3f3f3f3f3f3fll;
const double eps = 1e-6;
using namespace std;
int n, m;
int dp[3][3][N];
struct Data {
  int a, b;
  Data() {}
  Data(int a, int b) : a(a), b(b) {}
  bool operator<(const Data &O) const { return a < O.a; }
} da[N];
int dfs(int a, int b, int l) {
  if (l <= -2) return 0;
  if (l == -1) {
    if (a == 0 || b == 0) return 0;
    if (a == b) return 1;
    return 0;
  }
  if (l == 0) return a != b;
  int &ret = dp[a][b][l];
  if (ret != -1) return ret;
  ret = 0;
  int f[N * 9 * 2] = {};
  if (a || b) f[dfs(a, b, l - 1)] = 1;
  for (int i = 1; i <= l; ++i) {
    for (int j = 1; j <= 2; ++j) {
      int tmp = dfs(a, j, i - 2) ^ dfs(j, b, l - (i + 1));
      f[tmp] = 1;
    }
  }
  while (f[ret]) ret++;
  return ret;
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; ++i) {
    scanf("%d%d", &da[i].a, &da[i].b);
  }
  sort(da, da + m);
  int l = 0, r = 0;
  memset(dp, -1, sizeof(dp));
  int ret = 0;
  for (int i = 0; i < m; ++i) {
    int tmp = dfs(r, da[i].b, da[i].a - 2 - l);
    ret ^= tmp;
    l = da[i].a + 1;
    r = da[i].b;
  }
  ret ^= dfs(r, 0, n - l);
  if (ret)
    puts("WIN");
  else
    puts("LOSE");
  return 0;
}
