#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
unsigned long long lis,tab,ans=1,n,m,c,k,a,p,q;
int main(){
scanf("%llu%llu%llu%llu",&n,&m,&c,&k);
for(int i=1;i<=n;i++){
scanf("%llu",&a);
lis|=a;
}
for(int i=1;i<=m;i++){
scanf("%llu%llu",&p,&q);
tab|=1<<p;
}
unsigned long long sum=pow(2,k);
if((lis&tab)==tab) return !printf("%llu",sum-n);
else{
tab-=lis&tab;
for(int i=0;i<k;i++)
if(((tab>>i)&1)==0) ans<<=1;
}
if(ans==0&&n==0) printf("%llu",(unsigned long long)-1+1);
printf("%llu",ans-n);
return 0;
}