#include using namespace std; #define int long long const int N=2e5+10,INF=1e9; int n,p,h[N],f[N][2]; signed main(){ //freopen("climb.in","r",stdin); //freopen("climb.out","w",stdout); cin>>n>>p; for(int i=1;i<=n;i++) cin>>h[i]; memset(f,0x3f,sizeof(f)); f[1][0]=INF;f[1][1]=0; for(int i=2;i<=n;i++){ f[i][0]=min(f[i-1][0]+max(0ll,h[i-1]-h[i]),min(f[i-1][0],f[i-1][1])+p); f[i][1]=min(f[i-1][1]+max(0ll,h[i]-h[i-1]),min(f[i-1][0],f[i-1][1])+p); } cout<