#include using namespace std; const int N=205; int n,m,f[N][N],gx,gy,dx[N],dy[N],dc[N],cost; signed main () { cin>>gx>>gy>>n>>cost; for (int i=1;i<=n;i++) cin>>dx[i]>>dy[i]>>dc[i]; memset(f,0x3f,sizeof(f)); for (int i=gx;i>=0;i--) for (int j=gx;j>=0;j--) f[i][j]=(i+j)*cost; for (int k=1;k<=n;k++){ for (int i=gx;i>=0;i--) for (int j=gy;j>=0;j--){ if (i>0) f[i][j]=min(f[i][j],f[i-1][j]+cost); if (j>0) f[i][j]=min(f[i][j],f[i][j-1]+cost); if (i-dx[k]>=0&&j-dy[k]>=0){ f[i][j]=min(f[i][j],f[i-dx[k]][j-dy[k]]+dc[k]); } } } cout<