#include #define FL(i,a,b) for(ll i=(a);i<=(b);i++) #define FR(i,a,b) for(ll i=(a);i>=(b);i--) #define ll long long using namespace std; const ll MAXN = 2e5 + 10; ll n,V; ll h[MAXN]; ll f[MAXN][2]; signed main(){ scanf("%lld%lld",&n,&V); FL(i,1,n) scanf("%lld",&h[i]); memset(f,0x3f,sizeof(f)); f[1][1]=0,f[1][0]=V; FL(i,1,n){ f[i+1][0]=min(f[i][0]+max(0ll,h[i]-h[i+1]),min(f[i][0],f[i][1])+V); f[i+1][1]=min(f[i][1]+max(0ll,h[i+1]-h[i]),min(f[i][0],f[i][1])+V); } printf("%lld\n",min(f[n][0],f[n][1])); }