R=xrange;I=lambda:map(int,raw_input().split())
W,H,N,F=I()
dp=[[F*(i+j) for j in R(W+1)]for i in R(H+1)]
for t in R(N):
	x,y,c = I()
	for i in R(H,-1,-1):
		for j in R(W,-1,-1):
			if j>=x and i>=y:dp[i][j]=min(dp[i][j],dp[i-y][j-x]+c)
print dp[H][W]