#include using namespace std; typedef long long ll; typedef pair P; #define MAX_N 200005 vector X; ll N,K; ll a[MAX_N],b[MAX_N]; ll c[MAX_N]; ll d[MAX_N]; ll INF = (1LL<<60); ll tree[500]; ll getMax(int l,int r){ ll res=-INF; int i=l; while(ix){ if(last>a[i])return false; last=a[i]+K; } } return true; } int main(){ fill(tree,tree+500, -INF ); scanf("%lld %lld",&N,&K); for(int i=0;i0) assert(a[i]>a[i-1]); } X.push_back( INF ); for(int i=0;i1){ mid=(left+right)/2; if(check(mid))right=mid; else left=mid+1; } printf("%lld\n",left); printf("%lld\n",solve(left)); return 0; }