#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int MAXN = 110;
bool win[MAXN][MAXN][MAXN];
bool v[MAXN][MAXN][MAXN];
bool can_win(int top, int bot, int left) {
  if (top + bot == 0) return left % 2 == 1;
  bool &ret = win[top][bot][left];
  if (v[top][bot][left]) return ret;
  v[top][bot][left] = true;
  ret = false;
  if (left > 0 && !can_win(top, bot, left - 1)) return ret = true;
  if (top > 0 && !can_win(top - 1, bot, left)) return ret = true;
  for (int i = 2; i <= top; i++)
    if (!(can_win(top - i, bot, left + i - 1) &&
          can_win(top - i, bot, left + i - 2)))
      return ret = true;
  if (bot > 0 && !can_win(top, bot - 1, left)) return ret = true;
  for (int i = 2; i <= bot; i++)
    if (!(can_win(top, bot - i, left + i - 1) &&
          can_win(top, bot - i, left + i - 2)))
      return ret = true;
  return ret;
}
int R, N;
pair<int, int> took[MAXN];
int main() {
  cin >> R >> N;
  for (int i = 0; i < N; i++) cin >> took[i].first >> took[i].second;
  sort(took, took + N);
  int inner = 0;
  for (int i = 1; i < N; i++) {
    inner += took[i].first - took[i - 1].first - 1;
    if (took[i - 1].second != took[i].second) inner--;
  }
  if (N > 0) {
    if (can_win(took[0].first - 1, R - took[N - 1].first, inner))
      cout << "WIN\n";
    else
      cout << "LOSE\n";
  } else {
    for (int i = 0; i < R; i++) {
      if (!can_win(i, R - i - 1, 0)) {
        cout << "WIN\n";
        return 0;
      }
    }
    cout << "LOSE\n";
  }
  return 0;
}
