#include <bits/stdc++.h>
using namespace std;
const int Maxn = 110;
int dp[3][3][Maxn];
int n, m;
struct Ob {
  int x, y;
  bool operator<(const Ob &e) const { return x < e.x; }
} ob[Maxn];
int dfs(int a, int b, int l) {
  if (l <= -2) return 0;
  if (l == -1) {
    if (a == 0 || b == 0) return 0;
    return a == b;
  }
  if (l == 0) return a != b;
  if (dp[a][b][l] != -1) return dp[a][b][l];
  dp[a][b][l] = 0;
  int flag[Maxn * 9 * 2];
  memset(flag, false, sizeof(flag));
  if (a || b) flag[dfs(a, b, l - 1)] = 1;
  for (int i = 1; i <= l; ++i) {
    for (int j = 1; j <= 2; ++j) {
      int ret = dfs(a, j, i - 2) ^ dfs(j, b, l - (i + 1));
      flag[ret] = 1;
    }
  }
  int ret = 0;
  while (flag[ret]) ret++;
  return dp[a][b][l] = ret;
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < m; ++i) {
    scanf("%d%d", &ob[i].x, &ob[i].y);
  }
  sort(ob, ob + m);
  int l = 0, s = 0;
  memset(dp, -1, sizeof(dp));
  int ans = 0;
  for (int i = 0; i < m; ++i) {
    int ret = dfs(s, ob[i].y, ob[i].x - 2 - l);
    ans ^= ret;
    l = ob[i].x + 1;
    s = ob[i].y;
  }
  ans ^= dfs(s, 0, n - l);
  if (ans)
    puts("WIN");
  else
    puts("LOSE");
  return 0;
}
