#include<bits/stdc++.h>
using namespace std;
unsigned long long a[1000005];
bool eList[65];
int main(){
int n,m,c,x,y,k;
unsigned long long ans=1;
scanf("%d%d%d%d",&n,&m,&c,&k);
for(int i=1;i<=n;i++)scanf("%llu",&a[i]);
for(int i=1;i<=m;i++)scanf("%d%d",&x,&y),eList[x]=1;
for(int i=1;i<=n;i++){
int tmp=0;
while(a[i]>>tmp){
bool now=(a[i]>>tmp)&1;
if(eList[tmp]&&now)eList[tmp]=0;
tmp++;
}
}
for(int i=0;i<k;i++)if(!eList[i])ans*=2;
if(ans==0&&n==0)return puts("18446744073709551616"),0;
printf("%llu\n",ans-n);
return 0;
}