1458_E. Nim Shortcuts
After your debut mobile game "Nim" blew up, you decided to make a sequel called "Nim 2". This game will expand on the trusted Nim game formula, adding the much awaited second heap! 

In the game, there are two heaps, each containing a non-negative number of stones. Two players make moves in turn. On their turn, a player can take any positive number of stones from either one of the heaps. A player who is unable to move loses the game.

To make the game easier to playtest, you've introduced developer shortcuts. There are n shortcut positions (x_1, y_1), …, (x_n, y_n). These change the game as follows: suppose that before a player's turn the first and second heap contain x and y stones respectively. If the pair (x, y) is equal to one of the pairs (x_i, y_i), then the player about to move loses instantly, otherwise they are able to make moves as normal. Note that in the above explanation the two heaps and all pairs are ordered, that is, x must refer to the size of the first heap, and y must refer to the size of the second heap.

The game release was followed by too much celebration, and next thing you know is developer shortcuts made their way to the next official update of the game! Players now complain that the AI opponent has become unbeatable at certain stages of the game. You now have to write a program to figure out which of the given initial positions can be won by the starting player, assuming both players act optimally.

Input

The first line contains two integers n and m (1 ≤ n, m ≤ 10^5) — the number of shortcut positions, and the number of initial positions that need to be evaluated.

The following n lines describe shortcut positions. The i-th of these lines contains two integers x_i, y_i (0 ≤ x_i, y_i ≤ 10^9). It is guaranteed that all shortcut positions are distinct.

The following m lines describe initial positions. The i-th of these lines contains two integers a_i, b_i (0 ≤ a_i, b_i ≤ 10^9) — the number of stones in the first and second heap respectively. It is guaranteed that all initial positions are distinct. However, initial positions are not necessarily distinct from shortcut positions.

Output

For each initial position, on a separate line print "WIN" if the starting player is able to win from this position, and "LOSE" otherwise.

Example

Input


3 5
3 0
0 1
2 2
0 0
1 1
2 2
3 3
5 4


Output


LOSE
WIN
LOSE
WIN
LOSE
```python
from heapq import *
from bisect import bisect_left
n, m = map(int, input().split())

inf = 15 * 10 ** 8

norm = []
rev = []
slow = set()
for _ in range(n):x, y = map(int, input().split());heappush(norm, (x,y));heappush(rev, (y,x));slow.add((x,y))

cx = cy = 0

skipX=[]
skipY=[]

for i in range(2 * n):
    tl = tr = inf
    tlp = trp = (inf, inf)
    
    if norm:tl = norm[0][0] - cx;tlp = (norm[0][0] - cx, norm[0][1] - cy)

    if rev:tr = rev[0][0] - cy;trp = (rev[0][0] - cy, rev[0][1] - cx)

    if tlp < trp:
        x, y = heappop(norm)
        if tl < 0:continue
        cx+=tl;cy+=tl
        assert x == cx
        if y < cy:skipX.append(x);cx += 1
    else:
        y, x = heappop(rev)
        if tr < 0:
            continue
        cx+=tr;cy+=tr
        assert y == cy
        if x < cx:
            skipY.append(y)
            cy += 1

out = []
for _ in range(m):
    x, y = map(int, input().split())
    if (x, y) in slow:        out.append('LOSE');        continue
    csx = bisect_left(skipX, x);    csy = bisect_left(skipY, y)
    if csx < len(skipX) and skipX[csx] == x:        out.append('WIN');        continue
    if csy < len(skipY) and skipY[csy] == y:        out.append('WIN');        continue
    out.append('LOSE' if x-csx==y-csy else 'WIN')
print('\n'.join(map(str,out)))        
```