using namespace std;
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#define N 100005
#define ll long long
#define INF 1000000001ll
int n,m;
set<ll> fail;
map<int,vector<int> > v;
int q[N];
set<int> c;
int ans[N];
int main(){
//	freopen("in.txt","r",stdin);
//	freopen("out.txt","w",stdout);
	scanf("%d%d",&n,&m);
	for (int i=1;i<=n;++i){
		int x,y;
		scanf("%d%d",&x,&y);
		fail.insert(x*INF+y);
		v[x].push_back(y);
	}
	fail.insert(0);
	v[0].push_back(0);
	for (int i=1;i<=m;++i){
		int x,y;
		scanf("%d%d",&x,&y);
		if (fail.find(x*INF+y)!=fail.end())
			ans[i]=0;
		else
			v[x].push_back(-i);
		q[i]=y;
	}
	int mex=0,lst=-1;
	for (auto p=v.begin();p!=v.end();lst=p->first,++p){
//		printf("%d\n",p->first);
//		if (p->first==2822646)
//			printf("fuck\n");
		for (int i=lst+1;i<p->first;/*++i*/){
			while (c.find(mex)!=c.end())
				mex++;
			auto q=c.upper_bound(mex);
			if (q==c.end()){
				mex+=p->first-i;
				break;
			}
			int tmp=min(*q-mex,p->first-i);
			mex+=tmp;
			i+=tmp;
		}
		int mn=INF;
		for (int i=0;i<p->second.size();++i)
			if (p->second[i]>=0)
				mn=min(mn,p->second[i]);
		while (c.find(mex)!=c.end())
			mex++;
		if (mex<mn)
			c.insert(mex);
		mn=min(mn,mex);
		for (int i=0;i<p->second.size();++i)
			if (p->second[i]>=0)
				c.insert(p->second[i]);
			else{
				int y=q[-p->second[i]];
				ans[-p->second[i]]=(y!=mn);
			}
	}
	for (int i=1;i<=m;++i)
		if (ans[i])
			printf("WIN\n");
		else
			printf("LOSE\n");
	return 0;
}















