#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:100000000000000")
using namespace std;
const int INF = 2e7;
int ma[100000][2];
int r, n;
int d[100000][16];
int main() {
  cin >> r >> n;
  int a, b;
  memset(ma, 0, sizeof ma);
  for (int i = 0; i < n; i++) {
    cin >> a >> b;
    a--;
    b--;
    ma[a][b]++;
  }
  memset(d, 0, sizeof d);
  d[1][0] = 1;
  vector<pair<int, int> > pr(16);
  for (int i = 0; i < 16; i++) {
    pr[i].second = i;
    pr[i].first = 0;
    for (int j = 0; j < 5; j++) {
      if ((1 << j) & i) pr[i].first++;
    }
  }
  sort(pr.begin(), pr.end());
  for (int i = 2; i <= r; i++) {
    for (int q = 15; q >= 0; q--) {
      int j = pr[q].second;
      if ((j & 1) && (j & 2)) continue;
      if ((j & 4) && (j & 8)) continue;
      int f = (j & 1) | (j & 2);
      int s = (j & 4) | (j & 8);
      vector<int> mex(200, 0);
      for (int k = (f > 0); k < i - (s > 0); k++) {
        for (int w = 0; w < 2; w++) {
          if (k == 1 && !(f & (1 << w))) continue;
          if (k == i - 2 && !(s & (1 << (w + 2)))) continue;
          mex[d[k + 1][f | (1 << (2 + w))] ^ d[i - k][s | (1 << w)]]++;
        }
      }
      while (mex[d[i][j]]) d[i][j]++;
    }
  }
  if (!n) {
    cout << (d[r][0] ? "WIN" : "LOSE");
    return 0;
  }
  int ans = 0;
  for (int i = 0; i < r; i++) {
    if (ma[i][0] || ma[i][1]) {
      int f = (ma[i][0] ? 4 : 8);
      int s = 0;
      int wh = 0;
      for (int j = i - 1; j >= 0; j--) {
        if (ma[j][0] || ma[j][1]) {
          wh = j;
          s = (ma[j][0] ? 1 : 2);
          break;
        }
      }
      ans = (ans ^ d[i - wh + 1][f | s]);
    }
  }
  for (int i = r - 1; i >= 0; i--) {
    if (ma[i][0] || ma[i][1]) {
      int s = (ma[i][0] ? 1 : 2);
      ans = (ans ^ d[r - i][s]);
      break;
    }
  }
  cout << (ans ? "WIN" : "LOSE");
}
