N,M,L,K=map(int, input().split()) C,T=[],[] for i in range(M): x,y=map(int, input().split()) C.append((x+y,x,y)) for i in range(L): x,y=map(int, input().split()) T.append((x+y,x,y)) C=sorted(C) T=sorted(T) C.append((2*N+2,N+1,N+1)) E=[[0]*(N+2) for i in range(N+2)] #1:check 2:tiger for a,x,y in T: E[x][y]=2 #print(C) #print(T) dp=[[[0]*(N+3) for w in range(N+3)]for h in range(K+3)] dp[K][0][0]=1 mod=998244353 for i in range(M+1): if i==0: sx,sy=0,0 gx,gy=C[0][1],C[0][2] else: sx,sy=C[i-1][1],C[i-1][2] gx,gy=C[i][1],C[i][2] for k in range(K,-1,-1): for x in range(sx,gx+1): for y in range(sy,gy+1): dp[k][x][y]%=mod if E[x][y]==0: if x+1<=gx: dp[k][x+1][y]+=dp[k][x][y] if y+1<=gy: dp[k][x][y+1]+=dp[k][x][y] else: if k>0: if x+1<=gx: dp[k-1][x+1][y]+=dp[k][x][y] if y+1<=gy: dp[k-1][x][y+1]+=dp[k][x][y] ans=0 for k in range(K+1): ans+=dp[k][N][N] ans%=mod print(ans)