#include <bits/stdc++.h>
using namespace std;
int main()
{ freopen("2020zoo.in","r",stdin);
freopen("2020zoo.out","w",stdout);
int n, m, c, k; scanf("%d%d%d%d", &n, &m, &c, &k);
if(k == 64 && n == 0 && m == 0)
{ puts("18446744073709551616");
return 0; }
unsigned long long x = 0; // 现存动物的二进制位
unsigned long long y = 0; // 需要饲料的二进制位
unsigned long long a;
int p, q;
for(int i = 1; i <= n; ++i) scanf("%llu", &a), x |= a;
for(int i = 1; i <= m; ++i) scanf("%d%d", &p, &q), y |= (1ull << p); // 可养殖动物的二进制应当与现存动物的二进制和不需要饲料的二进制位有关
unsigned long long z = 0; if(k == 64) z = x | ~y;
else z = x | (~y & ((1ull << k) - 1));
int cnt = 0; // 二进制中1的个数
for(; z; z -= z & (-z)) ++cnt;
unsigned long long ans = 0;
if(cnt == 64) ans = (~0ull) - n + 1;
else
ans = (1ull << cnt) - n;
printf("%llu", ans);
return 0; }