#include #define ll long long #define pir pair #define mkp make_pair #define fi first #define se second #define pb push_back using namespace std; const ll maxn=8e6+10; ll n1,n2,n3,m,u,v; void rd(ll &x){ char c; while(!isdigit(c=getchar())) ; x=c-'0'; while(isdigit(c=getchar())) x=(x<<1)+(x<<3)+c-'0'; } ll l12[maxn],r12[maxn],l13[maxn],r13[maxn],l23[maxn],r23[maxn]; ll c1[maxn],c2[maxn],c3[maxn],s[maxn],cntl,cntr,c[maxn],l,r,sum; __int128 ans; void add(ll i,ll v){ ll tl=max(l23[i],l), tr=min(r23[i],r); if(tl<=tr) sum+=v*(s[tr]-s[tl-1]); c[l23[i]]+=v, c[r23[i]+1]-=v; if(l23[i]<=l&&l<=r23[i]) cntl+=v; if(l23[i]<=r&&r<=r23[i]) cntr+=v; } void print(const __int128 x){ if(x>9) print(x/10); putchar(x%10+'0'); } int main(){ rd(n1), rd(n2), rd(n3), rd(m); for(ll i=1;i<=n1+1;i++) r12[i]=n2+1, r13[i]=n3+1, l12[i]=l13[i]=1; for(ll i=1;i<=n2+1;i++) r23[i]=n3+1, l23[i]=1; for(ll i=1;i<=m;i++){ rd(u), rd(v); if(u>v) swap(u,v); if(u<=n1){ if(v<=n1) ++c1[u+1], --c1[v+1]; else if(v<=n1+n2) v-=n1, r12[u]=min(r12[u],v), l12[u+1]=max(l12[u+1],v+1); else v-=n1+n2, r13[u]=min(r13[u],v), l13[u+1]=max(l13[u+1],v+1); } else if(u<=n1+n2){ u-=n1; if(v<=n1+n2) v-=n1, ++c2[u+1], --c2[v+1]; else v-=n1+n2, r23[u]=min(r23[u],v), l23[u+1]=max(l23[u+1],v+1); } else u-=n1+n2, v-=n1+n2, ++c3[u+1], --c3[v+1]; } for(ll i=1;i<=n1+1;i++) c1[i]+=c1[i-1], l12[i]=max(l12[i],l12[i-1]), l13[i]=max(l13[i],l13[i-1]); for(ll i=1;i<=n2+1;i++) c2[i]+=c2[i-1], l23[i]=max(l23[i],l23[i-1]); for(ll i=1;i<=n3+1;i++) c3[i]+=c3[i-1]; r12[n1+2]=n2+1, r13[n1+2]=r23[n2+2]=n3+1; for(ll i=n1+1;i;i--) c1[i]=!c1[i], r12[i]=min(r12[i],r12[i+1]), r13[i]=min(r13[i],r13[i+1]), l12[i]=min(l12[i],r12[i]+1), l13[i]=min(l13[i],r13[i]+1); for(ll i=n2+1;i;i--) c2[i]=!c2[i], r23[i]=min(r23[i],r23[i+1]), l23[i]=min(l23[i],r23[i]+1); for(ll i=1;i<=n3+1;i++) c3[i]=!c3[i], s[i]=s[i-1]+c3[i]; l12[0]=l13[0]=1; l=1; for(ll i=1;i<=n1+1;i++){ for(ll j=r12[i-1]+1;j<=r12[i];j++) if(c2[j]) add(j,1); for(ll j=l12[i-1];j