#include <bits/stdc++.h>
using namespace std;
int R, N;
int Ri[110], Ci[110];
int f[110][110][3][3];
void read();
void solve();
pair<pair<pair<int, int>, pair<int, int> >,
     pair<pair<int, int>, pair<int, int> > >
split(pair<pair<int, int>, pair<int, int> >, int, int);
pair<pair<pair<int, int>, pair<int, int> >,
     pair<pair<int, int>, pair<int, int> > >
split(int, int, int, int, int, int);
int dp(int, int, int, int);
int main() {
  read();
  solve();
  return 0;
}
void read() {
  cin >> R >> N;
  for (int i = 0; i < N; ++i) cin >> Ri[i] >> Ci[i], --Ri[i], --Ci[i];
}
void solve() {
  vector<pair<pair<int, int>, pair<int, int> > > seg;
  seg.push_back(make_pair(make_pair(0, R), make_pair(2, 2)));
  for (int i = 0; i < N; ++i)
    for (int j = 0; j < int((seg).size()); ++j)
      if (seg[j].first.first <= Ri[i] && Ri[i] < seg[j].first.second) {
        pair<pair<int, int>, pair<int, int> > t = seg[j];
        seg.erase(seg.begin() + j);
        pair<pair<pair<int, int>, pair<int, int> >,
             pair<pair<int, int>, pair<int, int> > >
            s = split(t, Ri[i], Ci[i]);
        seg.push_back(s.first), seg.push_back(s.second);
        break;
      }
  int res = 0;
  fill(&f[0][0][0][0], &f[110][0][0][0], -1);
  for (int i = 0; i < int((seg).size()); ++i) {
    int tt;
    res ^= (tt = dp(seg[i].first.first, seg[i].first.second,
                    seg[i].second.first, seg[i].second.second));
  }
  cout << (res ? "WIN" : "LOSE") << "\n";
}
int dp(int l, int r, int ls, int rs) {
  if (l >= r) return 0;
  if (l + 1 == r) {
    int k = 3 & (ls + 1) & (rs + 1);
    return k == 0 ? 0 : 1;
  }
  if (~f[l][r][ls][rs]) return f[l][r][ls][rs];
  vector<int> gn;
  for (int i = l; i < r; ++i)
    for (int c = 0; c < 2; ++c) {
      if (i == l && ((c + 1) & (ls + 1)) == 0) continue;
      if (i == r - 1 && ((c + 1) & (rs + 1)) == 0) continue;
      pair<pair<pair<int, int>, pair<int, int> >,
           pair<pair<int, int>, pair<int, int> > >
          s = split(l, r, ls, rs, i, c);
      int l1 = s.first.first.first, r1 = s.first.first.second,
          ls1 = s.first.second.first, rs1 = s.first.second.second;
      int l2 = s.second.first.first, r2 = s.second.first.second,
          ls2 = s.second.second.first, rs2 = s.second.second.second;
      gn.push_back(dp(l1, r1, ls1, rs1) ^ dp(l2, r2, ls2, rs2));
    }
  stable_sort((gn).begin(), (gn).end());
  gn.erase(unique((gn).begin(), (gn).end()), gn.end());
  f[l][r][ls][rs] = 0;
  for (int i = 0; i < int((gn).size()); ++i, ++f[l][r][ls][rs])
    if (i != gn[i]) break;
  return f[l][r][ls][rs];
}
pair<pair<pair<int, int>, pair<int, int> >,
     pair<pair<int, int>, pair<int, int> > >
split(pair<pair<int, int>, pair<int, int> > p, int ri, int ci) {
  return split(p.first.first, p.first.second, p.second.first, p.second.second,
               ri, ci);
}
pair<pair<pair<int, int>, pair<int, int> >,
     pair<pair<int, int>, pair<int, int> > >
split(int l, int r, int ls, int rs, int ri, int ci) {
  return make_pair(make_pair(make_pair(l, ri), make_pair(ls, ci)),
                   make_pair(make_pair(ri + 1, r), make_pair(ci, rs)));
}
