#include <bits/stdc++.h>
using namespace std;
const int MAXN = 110;
int R, N;
pair<int, int> bad[MAXN];
int sg[MAXN][4];
bool seen[2 * MAXN];
int main() {
  sg[0][0] = sg[0][2] = 0;
  sg[0][1] = sg[0][3] = 1;
  sg[1][0] = 1;
  sg[1][1] = 2;
  sg[1][2] = 1;
  sg[1][3] = 0;
  for (int i = 2; i < MAXN; i++) {
    for (int j = 0; j < 2 * MAXN; j++) seen[j] = false;
    seen[sg[i - 2][1]] = true;
    for (int j = 1; j < i - 1; j++)
      seen[sg[j - 1][1] ^ sg[i - 2 - j][1]] = true;
    for (int j = 0; j < 2 * MAXN; j++)
      if (!seen[j]) {
        sg[i][0] = j;
        break;
      }
    for (int j = 0; j < 2 * MAXN; j++) seen[j] = false;
    seen[sg[i - 1][1]] = seen[sg[i - 2][1]] = true;
    seen[sg[i - 2][1] ^ 1] = true;
    seen[sg[i - 2][2]] = seen[sg[i - 2][3]] = true;
    for (int j = 1; j < i - 1; j++) {
      seen[sg[j - 1][3] ^ sg[i - 2 - j][1]] = true;
      seen[sg[j - 1][2] ^ sg[i - 2 - j][1]] = true;
    }
    for (int j = 0; j < 2 * MAXN; j++)
      if (!seen[j]) {
        sg[i][1] = j;
        break;
      }
    for (int j = 0; j < 2 * MAXN; j++) seen[j] = false;
    seen[sg[i - 1][2]] = true;
    seen[sg[i - 2][3]] = true;
    seen[sg[i - 2][2] ^ 1] = true;
    for (int j = 1; j < i - 1; j++) {
      seen[sg[j - 1][2] ^ sg[i - 2 - j][2]] = true;
      seen[sg[j - 1][3] ^ sg[i - 2 - j][3]] = true;
    }
    for (int j = 0; j < 2 * MAXN; j++)
      if (!seen[j]) {
        sg[i][2] = j;
        break;
      }
    for (int j = 0; j < 2 * MAXN; j++) seen[j] = false;
    seen[sg[i - 1][3]] = true;
    seen[sg[i - 2][2]] = true;
    seen[sg[i - 2][3] ^ 1] = true;
    for (int j = 1; j < i - 1; j++) {
      seen[sg[j - 1][2] ^ sg[i - 2 - j][3]] = true;
    }
    for (int j = 0; j < 2 * MAXN; j++)
      if (!seen[j]) {
        sg[i][3] = j;
        break;
      }
  }
  cin >> R >> N;
  for (int i = 0; i < N; i++) {
    cin >> bad[i].first >> bad[i].second;
  }
  sort(bad, bad + N);
  if (N == 0) {
    if (sg[R][0])
      cout << "WIN\n";
    else
      cout << "LOSE\n";
    return 0;
  }
  int sres = 0;
  if (bad[0].first > 1) sres ^= sg[bad[0].first - 2][1];
  if (bad[N - 1].first < R) sres ^= sg[R - 1 - bad[N - 1].first][1];
  for (int i = 0; i < N - 1; i++) {
    if (bad[i].second == bad[i + 1].second) {
      if (bad[i].first + 2 == bad[i + 1].first)
        sres ^= 1;
      else if (bad[i + 1].first - bad[i].first >= 3)
        sres ^= sg[bad[i + 1].first - bad[i].first - 3][2];
    } else {
      if (bad[i + 1].first - bad[i].first >= 3)
        sres ^= sg[bad[i + 1].first - bad[i].first - 3][3];
    }
  }
  if (sres)
    cout << "WIN\n";
  else
    cout << "LOSE\n";
  return 0;
}
