#include <bits/stdc++.h>
using namespace std;
void run();
int main() {
  ios::sync_with_stdio(0);
  run();
}
int did[105][2];
int bad[105][2];
int R, N;
static int memo[105][4][4];
int nim(int n, int m1, int m2) {
  if (n < 0) return 0;
  if (n == 0) {
    if (m1 == 0 and m2 == 0) return 0;
    if (m1 and m2 and m1 != m2) return 1;
    if (m1 and m2 and m1 == m2) return 0;
    if (m1 or m2) return 1;
    return 0;
  }
  if (m1 == 0) {
    swap(m1, m2);
  }
  if (m1 == 2) {
    m1 = 1;
    if (m2) m2 = 3 - m2;
  }
  if (!~memo[n][m1][m2]) {
    set<int> can;
    int rep[105][2] = {};
    rep[0][0] = (m1 != 1);
    rep[0][1] = (m1 != 2);
    rep[n + 1][0] = (m2 != 1);
    rep[n + 1][1] = (m2 != 2);
    int game = 0;
    for (int i = 0; i <= n + 1; i++) {
      int qq = i;
      for (int j = 0; j < 2; j++) {
        if (not rep[i][j]) {
          ++rep[i][j];
          if (i > 0) ++rep[i - 1][j ^ 1];
          if (i + 1 <= n + 1) ++rep[i + 1][j ^ 1];
          ++rep[i][j ^ 1];
          if (R == 4 and N == 0 and n == 4)
            for (int a = 0; a <= R + 1; a++)
              for (int b = 0; b < 2; b++)
                cerr << (rep[a][b] ? 'X' : '.') << (b ? "\n" : "");
          if (R == 4 and N == 0 and n == 4) cerr << "---" << endl;
          bool did = false;
          int game = 0;
          for (int i = 0; i <= n + 1; i++) {
            if (not rep[i][0] or not rep[i][1]) {
              vector<int> hits = {2 * (int)(!!rep[i][0]) + (int)(!!rep[i][1])};
              for (int k = i + 1; k <= n + 2; ++k) {
                if (k == n + 2 or rep[k][0] and rep[k][1]) {
                  i = k - 1;
                  did = true;
                  break;
                }
                hits.push_back(2 * (int)(!!rep[k][0]) + (int)(!!rep[k][1]));
              }
              if (hits.size() == 1) {
                game ^= 1;
              } else {
                int t = hits.size();
                int u = 0, v = 0;
                int was = t;
                if (hits[0]) u = hits[0], --t;
                if (hits.back()) v = hits.back(), --t;
                if (R == 4 and N == 0)
                  cerr << " " << n << " " << m1 << " " << m2 << " at " << qq
                       << " -> " << t << " " << u << " " << v << " of " << was
                       << endl;
                game ^= nim(t, u, v);
              }
            }
          }
          can.insert(game);
          --rep[i][j];
          if (i > 0) --rep[i - 1][j ^ 1];
          if (i + 1 <= n + 1) --rep[i + 1][j ^ 1];
          --rep[i][j ^ 1];
        }
      }
    }
    memo[n][m1][m2] = 0;
    while (can.count(memo[n][m1][m2])) ++memo[n][m1][m2];
  }
  return memo[n][m1][m2];
}
void run() {
  memset(memo, -1, sizeof memo);
  for (int i = 0; i <= 100; i++)
    for (int j = 0; j < 2; j++)
      for (int k = 0; k < 3; k++) nim(i, j, k);
  int r, n;
  cin >> r >> n;
  R = r, N = n;
  N = -1;
  for (int i = 0; i < n; i++) {
    int x, y;
    cin >> x >> y;
    did[x - 1][y - 1] = true;
  }
  for (int i = 0; i < r; i++)
    for (int j = 0; j < 2; j++)
      if (i > 0 and did[i - 1][j ^ 1] or did[i][j ^ 1] or
          i + 1 < r and did[i + 1][j ^ 1] or did[i][j])
        bad[i][j] = true;
  int game = 0;
  for (int i = 0; i < r; i++) {
    if (not bad[i][0] or not bad[i][1]) {
      vector<int> hits = {2 * (int)bad[i][0] + (int)bad[i][1]};
      for (int k = i + 1; k <= r; ++k) {
        if (k == r or bad[k][0] and bad[k][1]) {
          i = k - 1;
          break;
        }
        hits.push_back(2 * (int)bad[k][0] + (int)bad[k][1]);
      }
      if (hits.size() == 1) {
        game ^= 1;
      } else {
        int t = hits.size();
        int u = 0, v = 0;
        if (hits[0]) u = hits[0], --t;
        if (hits.back()) v = hits.back(), --t;
        game ^= nim(t, u, v);
      }
    }
  }
  cout << (game ? "WIN" : "LOSE") << endl;
}
