#include<iostream>
using namespace std;
const int maxn=100010;
int data[maxn];
bool judge(int l,int r,int x)
{
for(int i=l;i<=r;i++)
{
for(int j=l;j<=r;j++)
{
if((data[i]^data[j])==x)
{
return true;
}
}
}
return false;
}
int find(int pos)
{
for(int i=0;i<maxn;i++)
{
if(data[i]==pos)
return i;
}
}
int main()
{
int n,m,x;
cin>>n>>m>>x;
for(int i=0;i<n;i++)
{
cin>>data[i];
}
int l,r;
for(int i=0;i<m;i++)
{
cin>>l>>r;
l=find(l);
r=find(r);
if(judge(l,r,x))
{
cout<<"yes"<<endl;
}
else
{
cout<<"no"<<endl;
}
}
return 0;
}