#include <bits/stdc++.h>
using namespace std;
const int N = 110;
const int inf = 1 << 20;
int dp[N][10];
int sta[N * N], top;
void init() {
  dp[0][0] = 0;
  dp[0][1] = 1;
  dp[0][2] = 0;
  dp[0][3] = 1;
  for (int i = 1; i <= 100; i++) {
    for (int j = 0; j <= 3; j++) {
      top = 0;
      int a, b;
      if (j == 0) {
        for (int k = 1; k <= i; k++) {
          if (k == 1)
            a = 0;
          else
            a = dp[k - 1 - 1][1];
          if (k == i)
            b = 0;
          else
            b = dp[i - k - 1][1];
          sta[top++] = a ^ b;
        }
      } else if (j == 3) {
        for (int k = 1; k <= i; k++) {
          if (k > 1)
            a = dp[k - 2][2];
          else
            a = dp[0][1];
          if (k == i)
            b = 0;
          else
            b = dp[i - k - 1][3];
          sta[top++] = a ^ b;
        }
        sta[top++] = dp[i - 1][3];
      } else if (j == 1) {
        for (int k = 1; k <= i; k++) {
          if (k == 1)
            a = dp[0][1];
          else
            a = dp[k - 1 - 1][2];
          if (k == i)
            b = 0;
          else
            b = dp[i - k - 1][1];
          sta[top++] = a ^ b;
        }
        sta[top++] = dp[i - 1][1];
        for (int k = 1; k <= i; k++) {
          if (k == 1)
            a = 0;
          else
            a = dp[k - 1 - 1][3];
          if (k == i)
            b = 0;
          else
            b = dp[i - k - 1][1];
          sta[top++] = a ^ b;
        }
      } else {
        for (int k = 1; k <= i; k++) {
          if (k == 1)
            a = dp[0][1];
          else
            a = dp[k - 1 - 1][2];
          if (k == i)
            b = dp[0][1];
          else
            b = dp[i - k - 1][2];
          sta[top++] = a ^ b;
        }
        sta[top++] = dp[i - 1][2];
        for (int k = 1; k <= i; k++) {
          if (k == 1)
            a = 0;
          else
            a = dp[k - 2][3];
          if (k == i)
            b = 0;
          else
            b = dp[i - k - 1][3];
        }
      }
      sta[top++] = inf;
      sort(sta, sta + top);
      top = unique(sta, sta + top) - sta;
      for (int k = 0; k < top; k++) {
        if (sta[k] != k) {
          dp[i][j] = k;
          break;
        }
      }
    }
  }
}
int aa[3] = {0, 1, -1};
int vis[N][N];
int f(int l1, int l2, int r1, int r2, int cnt) {
  if (l1 != -1 && r1 != -1) return dp[cnt][3];
  if (l1 == -1 && r1 == -1) return dp[cnt][0];
  if (l2 != -1 || r2 != -1) return dp[cnt][2];
  return dp[cnt][1];
}
int main() {
  init();
  int r, n;
  while (scanf("%d%d", &r, &n) != EOF) {
    memset(vis, 0, sizeof(vis));
    for (int i = 1; i <= n; i++) {
      int a, b;
      scanf("%d%d", &a, &b);
      vis[a][b] = 1;
    }
    for (int i = 1; i <= r; i++) {
      for (int j = 1; j <= 2; j++) {
        if (vis[i][j] == 1) {
          for (int k = 0; k < 3; k++) {
            int x = i + aa[k];
            if (x < 1 || x > r) continue;
            vis[x][3 - j] = 2;
          }
        }
      }
    }
    vis[r + 1][1] = vis[r + 1][2] = 1;
    int l1, l2, r1, r2, cnt = 0;
    l1 = l2 = r1 = r2 = -1;
    int ans = 0;
    for (int i = 1; i <= r + 1; i++) {
      if (vis[i][1] != 0 && vis[i][2] != 0) {
        if (cnt || l1 != -1 || r1 != -1) {
          ans ^= f(l1, l2, r1, r2, cnt);
          cnt = 0;
          l1 = l2 = r1 = r2 = -1;
        }
      } else if (vis[i][1] == 0 && vis[i][2] == 0)
        cnt++;
      else if (vis[i][1] == 0) {
        if (l1 == -1)
          l1 = i;
        else
          l2 = i;
      } else {
        if (r1 == -1)
          r1 = i;
        else
          r2 = i;
      }
    }
    if (ans)
      printf("WIN\n");
    else
      printf("LOSE\n");
  }
  return 0;
}
