#include <bits/stdc++.h>
int vis[110][3];
int sg[110][2][2][2][2];
int dfs(int L, int lu, int ld, int ru, int rd) {
  if (L == 0) return 0;
  if (lu + ld + ru + rd == 0) return 0;
  if (L == 1) {
    if ((lu & ld) || (ru & rd)) return 1;
    return 0;
  }
  int che[100];
  memset(che, 0, sizeof(che));
  if (L == 2) {
    int x = lu + ld + ru + rd;
    if (x == 4) return 0;
    if (x == 3) return 2;
    if (x == 2) {
      if (lu ^ ld) return 1;
      if (ru ^ rd)
        return 1;
      else
        return 0;
    }
    if (x == 1) return 1;
    return 0;
  }
  int ans = sg[L][lu][ld][ru][rd];
  if (ans >= 0) return ans;
  if (lu) che[dfs(L - 1, 1, ld, 0, rd)] = 1;
  if (ru) che[dfs(L - 1, 0, ld, 1, rd)] = 1;
  if (ld) che[dfs(L - 1, lu, 1, ru, 0)] = 1;
  if (rd) che[dfs(L - 1, lu, 0, ru, 1)] = 1;
  int tmp;
  for (int i = 2; i < L; ++i) {
    tmp = dfs(i - 1, lu, 1, ru, 0) ^ dfs(L - i, 1, ld, 0, rd);
    che[tmp] = 1;
    tmp = dfs(i - 1, lu, 0, ru, 1) ^ dfs(L - i, 0, ld, 1, rd);
    che[tmp] = 1;
  }
  tmp = 0;
  while (che[tmp]) ++tmp;
  return sg[L][lu][ld][ru][rd] = tmp;
}
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  int u, v;
  memset(sg, -1, sizeof(sg));
  for (int j = 0; j < m; ++j) {
    scanf("%d%d", &u, &v);
    for (int i = -1; i <= 1; ++i) vis[u + i][3 - v] = 1;
    vis[u][v] = 1;
  }
  vis[0][1] = vis[0][2] = vis[n + 1][1] = vis[n + 1][2] = 1;
  int lu, ru, ld, rd, L;
  int ans = 0;
  for (int i = 1; i <= n; ++i) {
    if (vis[i][1] == 0 || vis[i][2] == 0) {
      lu = vis[i][1] == 0;
      ru = vis[i][2] == 0;
      L = 1;
      while (i + L < n && vis[i + L][1] == 0 && vis[i + L][2] == 0) ++L;
      if (vis[i + L][1] && vis[i + L][2]) {
        if (L == 1)
          ans ^= 1;
        else {
          ld = 1, rd = 1;
          ans ^= dfs(L, lu, ld, ru, rd);
        }
      } else {
        ld = vis[i + L][1] == 0;
        rd = vis[i + L][2] == 0;
        ans ^= dfs(L + 1, lu, ld, ru, rd);
      }
      i = i + L;
    }
  }
  if (ans)
    puts("WIN");
  else
    puts("LOSE");
}
