← Home
package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
)

type Cell struct {
	r int
	c int
}

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var r, n int
	fmt.Fscan(in, &r, &n)

	cells := make([]Cell, n)
	for i := 0; i < n; i++ {
		fmt.Fscan(in, &cells[i].r, &cells[i].c)
	}

	sort.Slice(cells, func(i, j int) bool {
		return cells[i].r < cells[j].r
	})

	var g [101][3][3]int

	for length := 1; length <= r; length++ {
		for a := 0; a < 3; a++ {
			for b := 0; b < 3; b++ {
				var seen [256]bool
				for i := 1; i <= length; i++ {
					for c := 1; c <= 2; c++ {
						if i == 1 && a == c {
							continue
						}
						if i == length && b == c {
							continue
						}
						x := g[i-1][a][3-c] ^ g[length-i][3-c][b]
						seen[x] = true
					}
				}
				mex := 0
				for seen[mex] {
					mex++
				}
				g[length][a][b] = mex
			}
		}
	}

	xor := 0
	start := 1
	leftBlock := 0

	for _, cell := range cells {
		length := cell.r - start
		rightBlock := 3 - cell.c
		xor ^= g[length][leftBlock][rightBlock]
		start = cell.r + 1
		leftBlock = 3 - cell.c
	}

	length := r - start + 1
	xor ^= g[length][leftBlock][0]

	if xor != 0 {
		fmt.Fprintln(out, "WIN")
	} else {
		fmt.Fprintln(out, "LOSE")
	}
}