#include <bits/stdc++.h> #define REP(i,n,N) for(int i=(n);i<(int) N;i++) #define p(s) cout<<(s)<<endl using namespace std; const int inf=1e9; int dp[110][110]; int x[55],y[55],c[55]; int main(){ int gx,gy,N,F; cin>>gx>>gy>>N>>F; REP(i,0,N) cin>>x[i]>>y[i]>>c[i]; REP(i,0,gx+1) REP(j,0,gy+1) dp[i][j]=inf; dp[0][0]=0; REP(i,0,gx) REP(j,0,gy) REP(k,0,N) { if(i+x[k]>gx||i+y[k]>gy) continue; dp[i+x[k]][j+y[k]]=min(dp[i+x[k]][j+y[k]],dp[i][j]+c[k]); } REP(i,0,gx+1) REP(j,0,gy+1){ if(j>0)dp[i][j]=min(dp[i][j],dp[i][j-1]+F); else if(i>0) dp[i][j]=min(dp[i][j],dp[i-1][j]+F); } p(dp[gx][gy]); return 0; }