QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#367115#1650. AND = ORNahidameowAC ✓395ms136404kbC++2016.8kb2024-03-25 18:39:392024-03-25 18:39:40

Judging History

你现在查看的是最新测评结果

  • [2024-03-25 18:39:40]
  • 评测
  • 测评结果:AC
  • 用时:395ms
  • 内存:136404kb
  • [2024-03-25 18:39:39]
  • 提交

answer

#include<bits/stdc++.h>
//=========================================================
typedef long long ll;
typedef __int128 Int;
typedef unsigned long long ul;
typedef long double LD;
#define pd push_back
#define all(x) x.begin(),x.end()
#define allA(x,l,r) x+l,x+r+1
#define mpr std::make_pair
#define ve std::vector
#define mpre(v) v.insert(v.begin(),0)
#define lb lower_bound
//=========================================================
namespace Balance_tree{
	struct Mes{
		Mes(){}
		friend Mes operator + (Mes A,Mes B){
			Mes ans;
			return ans;
		}
	};
	const int N=2e5+10;
	std::mt19937 rnd(time(NULL));
	struct Mes_BLT{
		struct node{int l,r;ll val;int key,sz;Mes rv,v;}tr[5];//don't forget to promote it
		int rot,cnt=0;
		std::vector<int> bin;
		void pushup(int rt){tr[rt].sz=tr[tr[rt].l].sz+tr[tr[rt].r].sz+1;
			if(tr[rt].l&&tr[rt].r)tr[rt].rv=tr[tr[rt].l].rv+tr[rt].v+tr[tr[rt].r].rv;
			else if(tr[rt].l)tr[rt].rv=tr[tr[rt].l].rv+tr[rt].v;
			else if(tr[rt].r)tr[rt].rv=tr[rt].v+tr[tr[rt].r].v;}
		int newid(){
			if(bin.empty())return ++cnt;
			int x=bin.back();bin.pop_back();
			return x;
		}void split(int rt,ll val,int &x,int &y){
			if(!rt)return x=y=0,void();
			if(tr[rt].val<=val)x=rt,split(tr[rt].r,val,tr[rt].r,y);
			else y=rt,split(tr[rt].l,val,x,tr[rt].l);
			pushup(rt);
		}int merge(int x,int y){
			if(!x||!y)return x|y;
			if(tr[x].key<=tr[y].key)
				return tr[x].r=merge(tr[x].r,y),pushup(x),x;
			else return tr[y].l=merge(x,tr[y].l),pushup(y),y;
		}int build(int val,Mes P){int id=newid();return tr[id]={0,0,val,int(rnd()),1,P,P},id;}
		void insert(ll val,Mes P){
			int x,y;split(rot,val,x,y);
			rot=merge(merge(x,build(val,P)),y);
		}void del(ll val){
			int x,y,z;split(rot,val,x,z);
			split(x,val-1,x,y);bin.pd(y);
			rot=merge(merge(x,merge(tr[y].l,tr[y].r)),z);
		}Mes query(ll l,ll r){
			int x,y,z;split(rot,r,x,z);
			split(x,l-1,x,y);
			Mes ans=tr[y].rv;
			rot=merge(merge(x,y),z);
			return ans;
		}
		void clear(){for(int i=1;i<=cnt;i++)tr[i]={0,0,0,0,0,Mes(),Mes()};cnt=rot=0;bin.clear();}
	};
	struct Basic_BLT{
		struct node{int l,r;ll val;int key,sz;}tr[5];//don't forget to promote it
		int rot,cnt=0;
		std::vector<int> bin;
		void pushup(int rt){tr[rt].sz=tr[tr[rt].l].sz+tr[tr[rt].r].sz+1;}
		int newid(){
			if(bin.empty())return ++cnt;
			int x=bin.back();bin.pop_back();
			return x;
		}void split(int rt,int val,int &x,int &y){
			if(!rt)return x=y=0,void();
			if(tr[rt].val<=val)x=rt,split(tr[rt].r,val,tr[rt].r,y);
			else y=rt,split(tr[rt].l,val,x,tr[rt].l);
			pushup(rt);
		}int merge(int x,int y){
			if(!x||!y)return x|y;
			if(tr[x].key<=tr[y].key)
				return tr[x].r=merge(tr[x].r,y),pushup(x),x;
			else return tr[y].l=merge(x,tr[y].l),pushup(y),y;
		}int build(ll val){int id=newid();return tr[id]={0,0,val,int(rnd()),1},id;}
		void insert(ll val){
			int x,y;split(rot,val,x,y);
			rot=merge(merge(x,build(val)),y);
		}void del(ll val){
			int x,y,z;split(rot,val,x,z);
			split(x,val-1,x,y);bin.pd(y);
			rot=merge(merge(x,merge(tr[y].l,tr[y].r)),z);
		}int Get_rank(int rt,int k){
			if(k<=tr[tr[rt].l].sz)return Get_rank(tr[rt].l,k);
			if(k==tr[tr[rt].l].sz+1)return rt;
			return Get_rank(tr[rt].r,k-tr[tr[rt].l].sz-1);
		}
		void clear(){for(int i=1;i<=cnt;i++)tr[i]={0,0,0,0,0};cnt=rot=0;bin.clear();}
	};
}
namespace segment_tree{
	const int N=2e5+10;
	template<typename M,typename T> struct sg_tree{
		struct node{M Mes;T Tag;int l,r;}tr[5];
		int rot;int cnt;
		void init(){for(int i=1;i<=cnt;i++)tr[i].Mes=M(),tr[i].Tag=T(),tr[i].l=tr[i].r=0;rot=cnt=0;}
		void pushup(int rt){
			tr[rt].Mes=M();
			if(tr[rt].l&&tr[rt].r)tr[rt].Mes=tr[tr[rt].l].Mes+tr[tr[rt].r].Mes;
			else if(tr[rt].l)tr[rt].Mes=tr[tr[rt].l].Mes;
			else if(tr[rt].r)tr[rt].Mes=tr[tr[rt].r].Mes;
		}
		void addson(int rt,T x){tr[rt].Mes=tr[rt].Mes+x;tr[rt].Tag=tr[rt].Tag+x;}
		void pushdown(int rt){
			if(tr[rt].Tag==T())return;
			if(tr[rt].l)addson(tr[rt].l,tr[rt].Tag);
			if(tr[rt].r)addson(tr[rt].r,tr[rt].Tag);
			tr[rt].Tag=T();
		}
		void build(int &rt,int l,int r,std::vector<M> &A){
			if(!rt)rt=++cnt;
			if(l==r)return tr[rt].Mes=A[l],void();
			auto mid=l+r>>1;
			build(tr[rt].l,l,mid,A);build(tr[rt].r,mid+1,r,A);
			pushup(rt);
		}
		void change_Seq(int &rt,int l,int r,int x,int y,T P){
			if(x>y)return;
			if(!rt)rt=++cnt,tr[rt].Mes=M(),tr[rt].Tag=T();
			if(x<=l&&r<=y)return addson(rt,P);
			auto mid=l+r>>1;pushdown(rt);
			if(x<=mid)change_Seq(tr[rt].l,l,mid,x,y,P);
			if(y>mid)change_Seq(tr[rt].r,mid+1,r,x,y,P);
			pushup(rt);
		}
		void change_p(int &rt,int l,int r,int x,T P){
			if(!rt)rt=++cnt,tr[rt].Mes=M(),tr[rt].Tag=T();
			if(l==r)return addson(rt,P);
			auto mid=l+r>>1;pushdown(rt);
			(x<=mid)?change_p(tr[rt].l,l,mid,x,P):change_p(tr[rt].r,mid+1,r,x,P);
			pushup(rt);
		}
		M query(int rt,int l,int r,int x,int y){
			if(!rt||x>y)return M();
			if(x<=l&&r<=y)return tr[rt].Mes;
			auto mid=l+r>>1;pushdown(rt);
			if(x<=mid&&y>mid)return query(tr[rt].l,l,mid,x,y)+query(tr[rt].r,mid+1,r,x,y);
			if(x<=mid)return query(tr[rt].l,l,mid,x,y);
			if(y>mid)return query(tr[rt].r,mid+1,r,x,y);
			assert(false);
		}
		void build(int l,int r,std::vector<M> &A){build(rot,l,r,A);}
		void change_Seq(int l,int r,int x,int y,T P){
			change_Seq(rot,l,r,x,y,P);}
		void change_p(int l,int r,int x,T P){
			change_p(rot,l,r,x,P);}
		M query(int l,int r,int x,int y){
			return query(rot,l,r,x,y);}
	};
	struct Mes{
		Mes(){}
		Mes(ll _S,int _l,int _r){}
		Mes operator + (Mes P){
			Mes ans=Mes();
			return ans;
		}
	};
	struct Tag{
		Tag(){}
		Tag operator + (Tag P){
			Tag ans=Tag();
			return ans;
		}
		bool operator == (Tag P){return true!=false;}
	};
	Mes operator + (Mes A,Tag B){return A;}
}
namespace Fenwick_Tree{
	const int N=2e5+10;
	struct FwT{
		ll tr[5];int u;
		void init(int _u){
			u=_u;
			for(int i=0;i<=u;i++)tr[i]=0;}
		void add(int x,ll y){for(;x<=u;x+=(x&-x))tr[x]+=y;}
		ll query(int x){ll ans=0;for(;x;x^=(x&-x))ans+=tr[x];return ans;}
		ll query(int l,int r){if(l>r)return 0;return query(r)-query(l-1);}
	};
}
//=========================================================
namespace Math{
	ll QP(ll x,ll y,ll mod){ll ans=1;for(;y;y>>=1,x=x*x%mod)if(y&1)ans=ans*x%mod;return ans;}
	ll QA(ll x,ll y,ll mod){ll ans=0;for(;y;y>>=1,x=(x<<1)%mod)if(y&1)ans=(ans+x)%mod;return ans;}
	ll inv(ll x,ll mod){return QP(x,mod-2,mod);}
}
typedef unsigned U;
const int M=998244353;
struct ModInt{
	static constexpr U mod=M;
	U val;
	constexpr ModInt():val(0U){}
	constexpr ModInt(U _val):val(_val){}
	constexpr ModInt(int _val):val((_val%int(mod)+int(mod))%int(mod)){}
	constexpr ModInt(ll _val):val((_val%ll(mod)+ll(mod))%ll(mod)){}
	ModInt(const ModInt &P):val(P.val){}
	inline ModInt operator +(ModInt p){return ModInt(int(val)+int(p.val));}
	inline ModInt operator -(ModInt p){return ModInt(int(val)-int(p.val));}
	inline ModInt operator *(ModInt p){return ModInt(1ll*val*p.val);}
	inline ModInt QP(ll y){
		if(y<0)return inv().QP(-y);
		ModInt A=(*this),B=1U;
		for(;y;A=A*A,y>>=1)if(y&1)B=B*A;
		return B;
	}inline ModInt inv(){return QP(mod-2);}
	inline ModInt operator /(ModInt p){return (*this)*p.inv();}
	inline ModInt operator ^(ModInt p){return QP(p.val);}
	template<typename T>
	inline ModInt operator ^(T p){return QP(p);}

	template<typename T>
	inline ModInt operator +(T p){return (*this)+ModInt(p);}
	template<typename T>
	inline ModInt operator -(T p){return (*this)-ModInt(p);}
	template<typename T>
	inline ModInt operator *(T p){return (*this)*ModInt(p);}
	template<typename T>
	inline ModInt operator /(T p){return (*this)/ModInt(p);}

	inline ModInt operator +(){return (*this);}
	inline ModInt operator -(){return ModInt(0)-(*this);}

	template<typename T>
	inline friend ModInt operator +(T A,ModInt P){return ModInt(A)+P;}
	template<typename T>
	inline friend ModInt operator -(T A,ModInt P){return ModInt(A)-P;}
	template<typename T>
	inline friend ModInt operator *(T A,ModInt P){return ModInt(A)*P;}
	template<typename T>
	inline friend ModInt operator /(T A,ModInt P){return ModInt(A)/P;}

	inline void operator --(){val=(!val?mod-1:val-1);}
	inline void operator ++(){val=(val==mod-1?0:val+1);}

	inline void operator +=(ModInt P){(*this)=(*this)+P;}
	inline void operator -=(ModInt P){(*this)=(*this)-P;}
	inline void operator *=(ModInt P){(*this)=(*this)*P;}
	inline void operator /=(ModInt P){(*this)=(*this)/P;}

	template<typename T>
	inline void operator +=(T P){return (*this)=(*this)+ModInt(P);}
	template<typename T>
	inline void operator -=(T P){return (*this)=(*this)-ModInt(P);}
	template<typename T>
	inline void operator *=(T P){return (*this)=(*this)*ModInt(P);}
	template<typename T>
	inline void operator /=(T P){return (*this)=(*this)/ModInt(P);}
	template<typename T>
	inline void operator ^=(T P){return (*this)=(*this)^P;}

	U key(){return val;}
	inline bool operator == (ModInt P){return P.val==val;}
	inline bool operator != (ModInt P){return !((*this)==P);}

};
//=========================================================
namespace IO{
	const double eps=1e-8;
	const int BUFSIZE=1<<20;
	char ibuf[BUFSIZE],*is=ibuf,*it=ibuf;
	char tmp[BUFSIZE];int cnt=0;
	inline char getch(){if(is==it)it=(is=ibuf)+fread(ibuf,1,BUFSIZE,stdin);return is==it?EOF:*is++;}
	int readInt(){int x=0,y=0;char c=0;while(!isdigit(c))y|=c=='-',c=getch();while(isdigit(c))x=(x<<3)+(x<<1)+(c^48),c=getch();return !y?x:-x;}
	ll readLL(){ll x=0,y=0;char c=0;while(!isdigit(c))y|=c=='-',c=getch();while(isdigit(c))x=(x<<3)+(x<<1)+(c^48),c=getch();return !y?x:-x;}
	Int readInt128(){Int x=0;int y=0;char c=0;while(!isdigit(c))y|=c=='-',c=getch();while(isdigit(c))x=(x<<3)+(x<<1)+(c^48),c=getch();return !y?x:-x;}
	char readChar(){char c=0;while(!c||c==' '||c=='\n')c=getch();return c;}
	std::string readString(){std::string S;char c=0;while(!c||c==' '||c=='\n')c=getch();while(c!=' '&&c!='\n')S.pd(c),c=getch();return S;}
	LD readDouble(){LD x=0,d=1;int y=0;char c=0;while(!isdigit(c))y|=c=='-',c=getch();int cnt=0;bool flg=false;while(isdigit(c)){
		x=x*10+(c^48),flg|=(c^48),cnt+=flg,c=getch();if(cnt>=12)goto flg;}if(c=='.'){c=getch();while(isdigit(c)){d*=10,x+=(c^48)/d;flg|=(c^48),cnt+=flg;
		if(cnt>=12)goto flg;c=getch();}}flg:;return !y?x:-x;}
	ul readUll(){ul x=0;char c=0;while(!isdigit(c))c=getch();while(isdigit(c))x=(x<<3)+(x<<1)+(c^48),c=getch();return x;}

	void flush(){fwrite(tmp,1,cnt,stdout);cnt=0;}
	void putch(char c){tmp[cnt++]=c;if(cnt==BUFSIZE)flush();}
	void putint(int x){char Q[10];int tp=0;if(x<0)putch('-'),x=-x;if(x==0)putch('0');while(x)Q[tp++]=(x%10+'0'),x/=10;while(tp--)putch(Q[tp]);}
	void putInt128(Int x){char Q[45];int tp=0;if(x<0)putch('-'),x=-x;if(x==0)putch('0');while(x)Q[tp++]=(x%10+'0'),x/=10;while(tp--)putch(Q[tp]);}
	void putLL(ll x){char Q[20];int tp=0;if(x<0)putch('-'),x=-x;if(x==0)putch('0');while(x)Q[tp++]=(x%10+'0'),x/=10;while(tp--)putch(Q[tp]);}
	void putString(std::string x){for(auto p:x)putch(p);}
	void putDouble(LD x){if(x<0)x=-x,putch('-');if(fabs(x)<=eps)return putch(0);bool flg=false;LD d=1e10;LD l=std::min(LD(1e-10),1.0/std::max(LD(1),x));
		while(d>=l){if(d<=1){if(ll(x/d+d*1e-2)%10>0||flg)putch(ll(x/d+d*1e-2)%10+'0'),flg=true;}else{if(ll(x/d)%10>0||flg)putch(ll(x/d)%10+'0'),flg=true;
		}x-=ll(x/d+eps)*d; if(d==1){if(!flg)putch('0');putch('.');}d/=10;}}
	void putUll(ul x){char Q[25];int tp=0;if(!x)putch('0');while(x)Q[tp++]=(x%10+'0'),x/=10;while(tp--)putch(Q[tp]);}

	struct Basic{
		Basic &operator>>(int &A){A=IO::readInt();return (*this);}
		Basic &operator>>(ll &A){A=IO::readLL();return (*this);}
		Basic &operator>>(Int &A){A=IO::readInt128();return (*this);}
		Basic &operator>>(char &A){A=IO::readChar();return (*this);}
		Basic &operator>>(std::string &A){A=IO::readString();return (*this);}
		Basic &operator>>(double &A){A=IO::readDouble();return (*this);}
		Basic &operator>>(LD &A){A=IO::readDouble();return (*this);}
		Basic &operator>>(float &A){A=IO::readDouble();return (*this);}
		template<typename T1,typename T2>
		Basic &operator>>(std::pair<T1,T2>&v){(*this)>>v.first>>v.second;return (*this);}
		template<typename T,int d>
		Basic &operator>>(std::array<T,d> &v){for(auto &p:v)(*this)>>p;return (*this);}
		template<typename T>
		Basic &operator>>(std::vector<T> &v){for(auto &p:v)(*this)>>p;return (*this);}
		Basic &operator>>(ul &v){v=readUll();return (*this);}

		Basic &operator<<(const int &A){putint(A);return (*this);}
		Basic &operator<<(const char &A){putch(A);return (*this);}
		Basic &operator<<(const ll &A){putLL(A);return (*this);}
//		Basic &operator<<(const Int &A){putInt128(A);return (*this);}
		Basic &operator<<(const std::string &A){putString(A);return (*this);}
		Basic &operator<<(const LD &A){putDouble(A);return (*this);}
		Basic &operator<<(const double &A){putDouble(A);return (*this);}
		Basic &operator<<(const float &A){putDouble(A);return (*this);}
		template<typename T>
		Basic &operator<<(const std::vector<T> &v){for(int i=0;i<v.size();i++)(*this)<<v[i]<<(v.size()==i+1?'\n':' ');return (*this);}
		Basic &operator<<(const ul &A){putUll(A);return (*this);}

		void Flush(){flush();}
	}cin,cout;
}
//=========================================================
namespace Grader{
	std::vector<int>S;
	void Get(std::vector<int>v){
		assert(S.empty());

		reverse(all(S));
	}
	int readInt(){
		assert(!S.empty());
		int x=S.back();
		S.pop_back();
		return x;
	}
	void putInt(int x){
		std::vector<int>P;
		P.pd(x);Get(P);
	}void putVec(std::vector<int>v){Get(v);}
}
//=========================================================
bool FileIfstream(std::string name){
	std::ifstream f(name.c_str());
	return f.good();
}
//=========================================================
//const int mod=998244353;
//int add(int x,int y){x+=y;if(x>=mod)x-=mod;if(x<0)x+=mod;return x;}
//int mul(int x,int y){return 1ll*x*y%mod;}
//void add(int &x,int y){x+=y;if(x>=mod)x-=mod;if(x<0)x+=mod;}
const int N=2e5+10;
int lg2(int x){return __builtin_popcount(x);}
const int u=1073741823;
struct sg_tree{
	struct node{std::array<int,4>C[32];}tr[N<<2];
	node merge(node A,node B){
		int S=-1;for(int i=30;~i;i--){
			if(B.C[i][0]!=-1){
				if(S==-1)S=B.C[i][0];
				else S&=B.C[i][0];
			}
			if(S==-1)continue;
			if(A.C[i][0]!=-1)
				A.C[i][0]&=S;
			else A.C[i][0]=S;
		}
		S=-1;
		for(int i=0;i<=30;i++){
			if(B.C[i][1]!=-1){
				if(S==-1)S=B.C[i][1];
				else S|=B.C[i][1];
			}
			if(S==-1)continue;
			if(A.C[i][1]!=-1)
				A.C[i][1]|=S;
			else A.C[i][1]=S;
		}
		for(int i=0;i<=30;i++){
			if(A.C[i][2]==-1&&B.C[i][2]==-1);
			else if(A.C[i][2]!=-1&&B.C[i][2]==-1);
			else if(A.C[i][2]==-1&&B.C[i][2]!=-1)A.C[i][2]=B.C[i][2],A.C[i][3]=B.C[i][3];
			else{
				if(A.C[i][2]==-2||B.C[i][2]==-2){A.C[i][2]=-2;continue;}
				if(A.C[i][2]!=B.C[i][2])A.C[i][2]=-2;
				else A.C[i][3]+=B.C[i][3];
			}
		}
		return A;
	}
	void pushup(int rt){tr[rt]=merge(tr[rt<<1],tr[rt<<1|1]);}
	void build(int rt,int l,int r,ve<int> &A){
		if(l==r){
			for(int i=0;i<=30;i++)
				tr[rt].C[i]={-1,-1,-1,0};
			int C=lg2(A[l]);
			for(int i=0;i<C;i++)tr[rt].C[i][0]=A[l];
			for(int i=C+1;i<=30;i++)tr[rt].C[i][1]=A[l];
			tr[rt].C[C][2]=A[l];tr[rt].C[C][3]=1;
			return;
		}
		auto mid=l+r>>1;
		build(rt<<1,l,mid,A);
		build(rt<<1|1,mid+1,r,A);
		pushup(rt);
	}
	node query(int rt,int l,int r,int x,int y){
		if(x<=l&&r<=y)return tr[rt];
		auto mid=l+r>>1;
		if(x<=mid&&y>mid)return merge(query(rt<<1,l,mid,x,y),query(rt<<1|1,mid+1,r,x,y));
		if(x<=mid)return query(rt<<1,l,mid,x,y);
		if(y>mid)return query(rt<<1|1,mid+1,r,x,y);
		assert(false);
	}
}Tr; 
void solve(){
	//don't forget to open long long
	int n,m;IO::cin>>n>>m;
	ve<int>v(n+1);
	for(int i=1;i<=n;i++)IO::cin>>v[i];
	Tr.build(1,1,n,v);
	while(m--){
		int l,r;IO::cin>>l>>r;
		if(l==r){IO::cout<<"NO\n";continue;}
		//if(l+1==r){IO::cout<<(v[l]==v[r]?"YES":"NO")<<'\n';continue;}
		auto P=Tr.query(1,1,n,l,r);
		#define ok {IO::cout<<"YES\n";goto flg;}
		for(int i=0;i<=30;i++){
			if(P.C[i][2]==-2)continue;
			if(P.C[i][2]==-1){
				if(P.C[i][0]==P.C[i][1])
					ok;
				continue;
			}
			if(P.C[i][3]>1){
				if(P.C[i][0]==-1&&P.C[i][1]==-1)ok;
				int L=P.C[i][2],R=P.C[i][2];
				if(P.C[i][0]!=-1)L&=P.C[i][0];
				if(P.C[i][1]!=-1)R|=P.C[i][1];
				if(L==R)ok;
			//	continue;
			}
			if(P.C[i][0]!=-1&&(P.C[i][0]&P.C[i][2])==P.C[i][1])ok;
			if(P.C[i][1]!=-1&&(P.C[i][1]|P.C[i][2])==P.C[i][0])ok;
			if(P.C[i][0]==-1&&P.C[i][1]==P.C[i][2])ok;
			if(P.C[i][1]==-1&&P.C[i][0]==P.C[i][2])ok;
		}
		IO::cout<<"NO\n";
		flg:;
	}
}
int main(){
#ifndef ONLINE_JUDGE
	if(!FileIfstream("IO.in")){
		freopen("IO.in","w",stdout);
		return 0;
	}
	freopen("IO.in","r",stdin);
	freopen("IO.out","w",stdout);
#endif
	//std::ios::sync_with_stdio(false);
	//std::cin.tie(0);
	//std::cout.tie(0);
	int T=1;
	while(T--)solve();

	IO::cout.Flush();
	return 0;
}













详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3752kb

input:

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

output:

NO
NO
YES
YES
YES
NO
YES
YES
YES
NO
NO
YES
NO
NO
NO

result:

ok 15 lines

Test #2:

score: 0
Accepted
time: 135ms
memory: 5912kb

input:

1000 100000
10 21 13 3 27 17 13 5 2 11 19 12 5 30 30 30 26 29 30 23 13 10 26 5 30 31 11 10 0 9 31 30 28 7 23 11 12 15 9 15 0 10 30 29 28 20 21 28 24 29 31 6 31 10 1 11 17 20 21 12 1 7 9 0 23 5 30 18 14 1 10 0 23 5 23 30 21 12 1 17 31 8 28 21 2 29 12 24 28 4 12 28 2 9 8 25 27 14 2 24 2 6 16 25 7 26 2...

output:

YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
NO
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
NO
NO
YES
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
YES
YES
YES
YES
YES
YES
YE...

result:

ok 100000 lines

Test #3:

score: 0
Accepted
time: 278ms
memory: 136232kb

input:

99998 100000
64809358 457746235 626174899 497070574 118813143 700158742 390718358 455314343 568823698 264482194 328382807 327470966 163435843 630298535 560134023 453679015 659618722 699071266 487584642 296201642 868276574 195606863 87661911 152553323 258902299 897903510 789115811 220046142 391177127...

output:

YES
NO
NO
NO
NO
YES
NO
NO
NO
YES
NO
NO
NO
NO
NO
YES
YES
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
YES
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
YES
YES
NO
NO
NO
YES
NO
YES
YES
NO...

result:

ok 100000 lines

Test #4:

score: 0
Accepted
time: 290ms
memory: 136268kb

input:

99998 100000
200753929 508909324 82966150 231982361 64431879 785609264 1030955275 223851794 947241526 777212470 97756073 466986152 393446940 376828934 376915222 467088160 485965987 276150058 695588226 854976016 122938650 533816962 99702323 426989208 357807672 450315050 502367905 735420710 904992026 ...

output:

YES
NO
YES
NO
NO
NO
NO
YES
YES
YES
YES
NO
YES
YES
NO
YES
YES
YES
NO
YES
NO
NO
YES
NO
NO
NO
YES
NO
NO
YES
YES
NO
YES
YES
YES
YES
NO
YES
NO
YES
YES
NO
NO
NO
NO
YES
YES
NO
YES
YES
NO
NO
YES
NO
NO
NO
YES
NO
NO
YES
YES
NO
YES
NO
YES
YES
YES
NO
NO
NO
YES
NO
YES
YES
NO
YES
YES
NO
YES
YES
NO
YES
YES
YES
NO
...

result:

ok 100000 lines

Test #5:

score: 0
Accepted
time: 302ms
memory: 136260kb

input:

100000 100000
2 1 2 2 0 1 3 3 1 3 3 1 0 1 1 1 3 3 0 2 3 0 0 3 2 0 2 1 0 0 0 2 3 1 2 0 2 1 2 2 2 1 0 2 0 2 3 2 0 3 2 3 1 1 0 1 3 3 1 1 0 2 3 1 0 2 2 0 1 3 0 3 3 2 2 1 0 1 0 0 1 2 1 2 0 0 1 1 0 1 1 0 1 2 3 3 1 2 3 2 3 0 3 3 0 0 0 3 1 2 2 1 2 3 0 0 3 2 2 0 1 0 1 0 1 1 3 3 2 0 0 3 2 3 2 1 1 1 2 3 2 2 0 ...

output:

YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
...

result:

ok 100000 lines

Test #6:

score: 0
Accepted
time: 305ms
memory: 136304kb

input:

100000 100000
1 4 11 9 4 0 8 6 8 12 1 3 14 6 10 13 9 0 8 9 2 14 4 13 4 9 15 5 1 15 8 15 11 0 8 15 12 2 7 12 14 15 3 1 4 2 0 13 0 14 3 3 10 6 6 11 15 6 8 15 0 9 10 15 15 0 2 14 5 2 12 2 15 6 4 8 12 10 13 13 1 0 13 6 5 12 14 9 5 7 15 2 1 15 1 15 13 4 11 4 1 13 7 8 10 1 2 6 7 15 0 13 12 6 5 1 2 13 13 8...

output:

YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
...

result:

ok 100000 lines

Test #7:

score: 0
Accepted
time: 395ms
memory: 136212kb

input:

100000 100000
523548949 1065731088 862996787 699475930 1067945213 274074347 966699391 784570868 986927558 336085567 496156322 639760659 68214444 65082716 141820554 401383307 976783729 752958395 830755307 913445397 205124314 268786036 119013564 213674059 120644399 695300038 30146231 758334767 9820709...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
...

result:

ok 100000 lines

Test #8:

score: 0
Accepted
time: 52ms
memory: 4648kb

input:

36 99996
1073741822 1073725438 459639348 460687924 528452350 528452286 1073741823 33816576 187007524 460687932 187007492 191201844 191201828 527927998 52789764 52756480 460819004 528452286 52789252 460819006 1065336830 52789248 262144 528465918 191203892 0 528456702 528452350 1065336830 35913728 460...

output:

NO
NO
YES
YES
YES
YES
NO
NO
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
YES
YES
NO
NO
YES
NO
NO
YES
NO
NO
NO
YES
YES
YES
NO
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
YES
NO
NO
YES
NO
NO
NO
NO
YES
NO
YES
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
YES
NO
NO
YES
NO
YES
NO
YES
NO
YES
NO
NO
NO
NO
YES
NO
NO
NO...

result:

ok 99996 lines

Test #9:

score: 0
Accepted
time: 49ms
memory: 4628kb

input:

37 99997
1073741823 1052764643 445964384 134479872 135553024 982835296 135544832 982900962 982835424 1052768739 1069547519 143974400 1052769791 985129443 982835296 1052768755 1052769783 262144 1052769779 135528448 982835426 143974400 982901219 412409920 984998371 1069547007 985653731 0 982900963 445...

output:

YES
YES
NO
NO
NO
YES
YES
NO
YES
NO
NO
YES
YES
NO
NO
NO
NO
YES
NO
NO
YES
YES
NO
NO
NO
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
YES
NO
YES
YES
NO
NO
NO
NO
NO
YES
NO
YES
YES
YES
NO
YES
YES
NO
NO
NO
YES
NO
NO
YES
NO
YES
NO
YES
NO
YES
NO
YES
NO
YES
YES
YES
YES
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
YES
YES
N...

result:

ok 99997 lines

Test #10:

score: 0
Accepted
time: 23ms
memory: 4432kb

input:

10 100000
221368858 757110364 355524368 924862003 563136062 1068883839 238112041 740347235 1068883839 931250230
4 9
4 10
5 10
7 10
1 3
2 7
9 10
4 7
8 8
5 8
4 7
1 10
3 4
8 10
9 10
2 8
2 8
9 10
1 5
2 6
2 9
1 10
1 6
7 8
6 10
2 7
2 8
1 10
1 10
1 2
1 3
1 8
6 6
1 3
2 7
1 4
1 9
8 10
6 8
5 10
7 9
5 8
5 7
3 ...

output:

YES
YES
YES
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
YES
YES
NO
NO
YES
NO
NO
YES
YES
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
YES
NO
NO
NO
NO
NO
YES
NO
NO
NO
YES
NO
NO
YES
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
YES
YES
NO
YES
NO
NO
NO
NO
NO
NO
NO
YES
YES
NO
YE...

result:

ok 100000 lines

Test #11:

score: 0
Accepted
time: 63ms
memory: 4716kb

input:

100 100000
979174147 411851047 246487571 1073601343 926715922 1033371927 480332563 809851698 398004273 650723607 153475591 529271092 493720096 305990450 508152337 200085808 899436818 548165927 98833191 455448835 652019988 546134791 416125236 325865525 331730982 736673799 122996999 893964835 75892557...

output:

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO...

result:

ok 100000 lines

Test #12:

score: 0
Accepted
time: 115ms
memory: 6108kb

input:

1000 100000
969456424 928293203 768889638 762135318 283494173 321072508 234108675 224849312 381754742 907972481 348207051 812451135 847344541 246115204 603382082 163961133 888734611 881583442 71012798 217461146 341812614 188806431 188805551 42499998 437138389 844224993 867785000 839444333 306091876 ...

output:

NO
YES
YES
NO
NO
NO
NO
YES
NO
NO
YES
NO
YES
YES
YES
NO
YES
NO
NO
NO
NO
YES
YES
NO
NO
NO
NO
NO
YES
NO
NO
YES
NO
NO
NO
NO
NO
YES
YES
YES
YES
YES
NO
YES
NO
YES
NO
NO
NO
NO
YES
YES
YES
YES
YES
YES
YES
NO
YES
YES
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
YES
YES
NO
YES
NO
YES
YES
YES
NO
NO
NO
NO
YES
YE...

result:

ok 100000 lines

Test #13:

score: 0
Accepted
time: 191ms
memory: 20532kb

input:

10000 100000
137741019 97272733 555141918 865045002 1013631170 12026655 443973837 655901595 717914718 233259460 30902663 113593177 439403481 804291085 447416654 982647391 462324299 875744200 350424024 242582285 200215169 1037713478 503824856 564118168 929187917 709708234 620118677 989726984 18748296...

output:

YES
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
YES
YES
NO
NO
NO
YES
NO
YES
YES
NO
YES
NO
NO
NO
NO
YES
NO
NO
NO
YES
NO
NO
NO
YES
NO
YES
NO
NO
NO
NO
NO
NO
YES
YES
NO
YES
YES
NO
NO
YES
NO
NO
NO
YES
NO
NO
NO
YES
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
YES
NO
YES
YES
YES
YES
NO
NO
NO
YES
...

result:

ok 100000 lines

Test #14:

score: 0
Accepted
time: 208ms
memory: 36064kb

input:

20000 100000
441177685 969756257 512645786 441507555 405438251 431517388 416763596 464178882 1031953362 522711648 449538725 505135917 1018123017 1058336268 451039118 999940629 1049975600 515985198 505276978 993841809 1063903754 459071056 1050333793 455696225 970484251 977884078 1050266385 1049479984...

output:

NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
YES
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
YES
YES
NO
NO
NO
NO
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
YES
NO
NO
YES
NO
YES
YES
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
YES
NO
NO
NO
N...

result:

ok 100000 lines

Test #15:

score: 0
Accepted
time: 275ms
memory: 136152kb

input:

99999 99999
709569395 895036495 996207717 1009859523 1019799676 614414547 832679397 901855962 997750888 615430853 975764069 927688805 887172984 750430952 1048885612 724990408 907377735 544680798 923725128 907722564 821636940 669166418 773734240 687041637 711113338 791881835 978599625 852242168 83409...

output:

NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
YES
YES
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
YES
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES...

result:

ok 99999 lines

Test #16:

score: 0
Accepted
time: 307ms
memory: 136404kb

input:

99999 100000
150621003 629333203 90372521 90975736 880331866 10208243 811299064 811033521 546963144 760654177 312371890 358768403 435349808 757227345 22900434 927494769 440249105 966175018 487809707 1062259747 1058825032 188144232 1012425075 901856395 392645651 892287018 131687513 985877050 97269491...

output:

NO
NO
YES
NO
YES
NO
YES
YES
NO
YES
NO
YES
NO
NO
NO
YES
NO
YES
YES
YES
NO
NO
NO
YES
NO
YES
YES
YES
NO
NO
NO
NO
YES
NO
YES
NO
YES
NO
YES
NO
NO
NO
YES
YES
YES
YES
YES
NO
NO
YES
NO
YES
NO
NO
NO
YES
YES
YES
NO
NO
NO
YES
YES
NO
YES
YES
NO
YES
NO
NO
YES
YES
YES
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
YES
NO
...

result:

ok 100000 lines

Test #17:

score: 0
Accepted
time: 292ms
memory: 136176kb

input:

100000 100000
414548150 260229283 483592753 311814674 383582896 390736530 155050499 404548134 56740502 240074805 106644007 190196246 338750099 481732641 189663287 165022355 130402325 141150869 178415798 164880518 153938566 246908931 296085649 103703079 381084176 508226050 434653347 266830340 3209810...

output:

NO
YES
NO
YES
NO
YES
NO
NO
YES
NO
YES
NO
NO
YES
NO
NO
NO
NO
YES
YES
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
YES
NO
YES
YES
NO
YES
NO
NO
YES
YES
YES
YES
YES
YES
NO
NO
NO
NO
YES
YES
YES
YES
NO
YES
NO
NO
YES
NO
NO
YES
NO
YES
NO
NO
YES
NO
NO
YES
NO
NO
YES
YES
NO
YES
NO
NO
NO
NO
NO
YES
YES
NO
YES
YES
YES
NO...

result:

ok 100000 lines

Test #18:

score: 0
Accepted
time: 46ms
memory: 4920kb

input:

35 99998
294420482 1035993014 1040187327 968732422 1035861942 430744834 431795974 431795462 294429954 296527106 262144 293863424 968748966 294387712 294387712 1073741823 294387714 294428930 285474816 0 1035993015 968748982 1035993023 431795458 1040187391 431795458 431795458 968748806 968753078 17039...

output:

NO
YES
YES
YES
YES
YES
YES
NO
YES
NO
YES
YES
YES
NO
YES
YES
NO
NO
NO
YES
YES
YES
YES
YES
NO
YES
NO
YES
NO
YES
YES
YES
YES
YES
YES
NO
YES
YES
YES
NO
NO
YES
NO
YES
NO
YES
NO
NO
NO
YES
NO
YES
YES
YES
YES
YES
NO
YES
NO
NO
NO
YES
YES
YES
YES
YES
YES
NO
YES
YES
NO
NO
YES
YES
YES
YES
YES
NO
YES
YES
NO
YES
...

result:

ok 99998 lines

Test #19:

score: 0
Accepted
time: 53ms
memory: 4884kb

input:

37 99999
545521664 681836672 686657665 686653569 681836544 1073725415 771735527 771735527 753777639 753777347 805289959 1073741823 686665921 0 1073741807 753777639 753774785 686063744 1073741799 753777379 753909735 686588033 8650752 753777635 547618816 753775299 753774787 686030976 1073741823 686588...

output:

YES
YES
NO
YES
YES
YES
NO
NO
YES
NO
YES
NO
NO
NO
YES
YES
YES
YES
NO
NO
YES
YES
NO
NO
YES
YES
NO
YES
YES
YES
YES
YES
NO
NO
YES
NO
YES
NO
NO
YES
NO
NO
YES
NO
YES
NO
YES
YES
NO
YES
NO
NO
YES
NO
YES
NO
YES
YES
NO
YES
YES
YES
YES
YES
NO
YES
YES
YES
NO
YES
YES
NO
NO
NO
NO
YES
YES
YES
NO
NO
YES
NO
NO
NO
YE...

result:

ok 99999 lines

Test #20:

score: 0
Accepted
time: 55ms
memory: 4928kb

input:

41 100000
1061416439 855895380 285214740 1073741815 16779284 927198678 860089812 855673108 4 20 318802196 860089684 855895380 1073741823 1065353207 1063513591 1061416407 1073741815 0 2068 1064566263 1063513591 1061416439 1073741823 285247508 318801940 318801940 855813460 1064566775 855829844 8600898...

output:

YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
NO
NO
YES
NO
NO
YES
YES
YES
NO
YES
YES
YES
YES
YES
NO
NO
NO
YES
YES
YES
NO
YES
NO
YES
NO
YES
YES
YES
NO
NO
YES
NO
YES
YES
YES
YES
YES
YES
NO
NO
YES
YES
YES
NO
YES
YES
YES
YES
YES
NO
YES
NO
YES
YES
NO
YES
YES
YES
YES
YES
NO
NO
NO
NO
NO
NO
NO
YES
YES
NO
...

result:

ok 100000 lines

Test #21:

score: 0
Accepted
time: 23ms
memory: 4708kb

input:

10 100000
537396288 784895942 1073725431 537396288 1073725431 839724534 931759350 779685345 741125603 537396288
1 8
1 9
6 9
1 7
1 4
1 4
4 10
8 8
6 8
4 9
4 7
4 8
1 5
3 6
4 7
1 4
4 9
10 10
5 7
3 10
1 2
7 10
7 9
4 8
5 8
4 8
7 10
1 4
3 8
9 10
2 10
8 8
2 10
5 9
1 6
2 9
2 10
1 6
1 8
7 10
2 6
7 8
2 10
1 10...

output:

YES
YES
NO
YES
YES
YES
YES
NO
NO
NO
NO
NO
YES
YES
NO
YES
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
YES
YES
NO
YES
NO
YES
NO
YES
YES
YES
YES
YES
NO
YES
NO
YES
YES
NO
NO
NO
NO
YES
YES
NO
YES
YES
NO
NO
NO
NO
NO
NO
YES
YES
NO
NO
YES
NO
NO
YES
YES
NO
NO
NO
YES
YES
NO
NO
YES
YES
NO
NO
NO
NO
YES
NO
YES
NO
YES
YES
...

result:

ok 100000 lines

Test #22:

score: 0
Accepted
time: 67ms
memory: 4728kb

input:

100 100000
91647697 1024777936 95745265 231032189 893838708 1029994609 891575993 1033328016 230978973 896985364 99019988 500648656 360044912 770033876 891614840 635892020 623303773 227992945 755483997 84311421 896949304 1026939280 1073217533 635881304 629536624 630511228 224688380 763843481 75841013...

output:

NO
NO
NO
NO
YES
YES
NO
NO
YES
NO
YES
NO
NO
YES
NO
YES
YES
NO
NO
YES
YES
NO
NO
NO
NO
YES
YES
NO
NO
NO
YES
YES
NO
NO
YES
NO
YES
NO
NO
YES
NO
NO
NO
NO
YES
YES
NO
NO
NO
YES
NO
NO
YES
YES
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
YES
NO
YES
NO
NO
YES
NO
NO
NO
YES
NO
NO
NO
YES
NO
YES
YES
NO
YES
NO
NO
NO
YES
NO...

result:

ok 100000 lines

Test #23:

score: 0
Accepted
time: 118ms
memory: 6012kb

input:

1000 100000
742125614 1040830654 355150063 197868574 400231454 634227822 624801807 480064683 28307487 238890075 452838414 708680762 343667754 800698442 159111274 320697435 459103246 94365786 466477102 592008319 702382318 620432542 94072927 252311631 661205227 446537978 497753118 739230955 392820810 ...

output:

NO
NO
YES
NO
YES
NO
NO
NO
YES
NO
NO
NO
YES
YES
NO
NO
YES
NO
NO
YES
NO
YES
YES
NO
NO
NO
NO
NO
YES
NO
NO
NO
YES
NO
NO
NO
NO
NO
YES
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
YES
NO
YES
NO
NO
NO
NO
NO
YES
NO
NO
YES
NO
YES
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
YES...

result:

ok 100000 lines

Test #24:

score: 0
Accepted
time: 184ms
memory: 20548kb

input:

10000 100000
1055983260 535529672 216997134 477988508 779955480 801714382 719259468 761247240 971576478 182424156 1044987658 1012736922 458204250 197332894 524780442 441269708 259859034 233772632 150812890 433923418 944740824 1027811214 511543628 997004490 719815578 778288328 1030827594 534587144 44...

output:

YES
YES
YES
NO
NO
YES
NO
YES
NO
YES
YES
NO
NO
NO
NO
YES
NO
YES
YES
YES
NO
NO
YES
YES
NO
YES
YES
NO
NO
NO
NO
NO
YES
NO
NO
YES
NO
YES
NO
YES
NO
NO
YES
YES
NO
NO
YES
NO
YES
NO
NO
YES
YES
YES
YES
YES
NO
YES
YES
NO
NO
YES
NO
NO
YES
NO
NO
YES
YES
NO
YES
YES
YES
NO
YES
NO
NO
YES
NO
YES
YES
YES
NO
NO
YES
NO...

result:

ok 100000 lines

Test #25:

score: 0
Accepted
time: 212ms
memory: 36048kb

input:

20000 100000
97309938 250029170 1068302576 634053858 697003121 284474600 216323187 950178043 130921584 951829601 1053822073 888428658 398986490 885578872 361389178 681146595 377743608 500867171 1004703969 998909161 552325241 513861747 15432817 569948265 347315313 143879403 780942456 30833904 6158051...

output:

NO
NO
NO
YES
NO
NO
YES
NO
NO
YES
NO
NO
YES
NO
NO
NO
YES
NO
NO
NO
NO
YES
NO
NO
NO
YES
YES
YES
YES
NO
NO
NO
YES
NO
YES
YES
NO
YES
NO
NO
NO
YES
NO
NO
NO
NO
YES
YES
NO
YES
NO
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
NO
NO
YES
YES
NO
NO
YES
NO
NO
NO
NO
YES
NO
NO
NO
YES
NO
YES
NO
YES
NO
NO
NO
YES
NO
NO...

result:

ok 100000 lines

Test #26:

score: 0
Accepted
time: 279ms
memory: 136160kb

input:

99999 99999
151441895 691880741 960071782 951208741 681216869 430408612 673084067 671497831 940269024 940686948 671766499 404721891 406731937 691136866 674132581 950248674 941290786 951724705 966351905 421746086 145437926 942248867 959210913 965881568 941496741 411875042 154218214 403412962 15177596...

output:

YES
NO
NO
NO
YES
YES
YES
NO
YES
NO
YES
NO
YES
YES
NO
NO
NO
YES
NO
NO
YES
NO
YES
NO
YES
YES
NO
YES
NO
YES
NO
NO
NO
YES
NO
NO
YES
YES
NO
NO
YES
YES
YES
YES
NO
NO
NO
YES
NO
YES
NO
YES
YES
NO
NO
NO
YES
YES
YES
YES
NO
YES
NO
NO
NO
NO
YES
YES
NO
YES
NO
NO
NO
NO
YES
YES
NO
YES
YES
YES
NO
NO
YES
NO
YES
NO
Y...

result:

ok 99999 lines

Test #27:

score: 0
Accepted
time: 305ms
memory: 136216kb

input:

99999 100000
128213811 114040163 123251299 255085607 178289011 240706851 265311779 248779943 184320115 106481783 64755879 65031603 112207719 47739699 184066215 113514935 40947367 39378531 252977847 238294755 47762599 44096995 253766503 171747939 183241955 192993063 238578275 115385767 260608183 6422...

output:

NO
YES
NO
NO
YES
NO
NO
NO
NO
NO
YES
NO
NO
NO
YES
YES
NO
NO
YES
NO
YES
NO
NO
YES
NO
NO
YES
NO
YES
YES
NO
YES
YES
YES
YES
NO
NO
NO
NO
YES
NO
YES
NO
NO
NO
NO
NO
YES
YES
YES
NO
NO
NO
NO
YES
NO
NO
YES
YES
NO
YES
NO
NO
NO
YES
YES
YES
YES
YES
YES
YES
NO
NO
NO
YES
NO
YES
YES
NO
YES
NO
NO
NO
NO
NO
NO
YES
NO
...

result:

ok 100000 lines

Test #28:

score: 0
Accepted
time: 287ms
memory: 136240kb

input:

100000 100000
159728630 362627698 575304054 345125846 843273170 676127602 1041113810 93704434 247587058 827695954 785498450 378196818 14127574 320315634 849097426 357507314 438092754 902840790 190342002 190533970 177680626 505249910 14599026 591487478 228106710 222606290 89641074 386732406 462516818...

output:

YES
YES
YES
NO
NO
NO
NO
NO
NO
NO
NO
NO
YES
NO
YES
YES
YES
NO
YES
YES
NO
NO
NO
YES
NO
NO
NO
NO
NO
YES
NO
YES
YES
YES
YES
NO
YES
NO
NO
NO
YES
YES
YES
YES
NO
NO
NO
YES
NO
NO
NO
YES
YES
NO
NO
YES
NO
YES
YES
NO
NO
NO
YES
NO
YES
NO
NO
YES
NO
NO
YES
YES
NO
NO
NO
YES
NO
YES
NO
NO
YES
NO
NO
NO
YES
YES
NO
NO
...

result:

ok 100000 lines